Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我们如何编写一个简单的代码来生成一个随机但不包括用户';python中的输入_Python - Fatal编程技术网

我们如何编写一个简单的代码来生成一个随机但不包括用户';python中的输入

我们如何编写一个简单的代码来生成一个随机但不包括用户';python中的输入,python,Python,我正在做一个石头-布-剪刀的游戏,为此我希望计算机选择一个随机选择,不包括玩家的选择,因此如果玩家选择石头,那么它应该在布和剪刀之间随机选择。有人能帮我吗 这是我的代码: symbols = [rock,paper,scissors] player_input = input("Please type 1 for rock, 2 for paper, and 3 for scissors. ") player_choice = int(player_input) - 1 您

我正在做一个石头-布-剪刀的游戏,为此我希望计算机选择一个随机选择,不包括玩家的选择,因此如果玩家选择石头,那么它应该在布和剪刀之间随机选择。有人能帮我吗

这是我的代码:

symbols = [rock,paper,scissors]
player_input = input("Please type 1 for rock, 2 for paper, and 3 for scissors. ")
player_choice = int(player_input) - 1

您可以尝试以下方法(假设我继续上面的代码):


我还没有测试过这段代码,但它应该符合这个想法。

您可以试试这段代码。第一个选项将从选项列表中删除

c = [1,2,3] # 3 choices
a = random.choice(c) # pick the first (e.g. by input player)
print (a) 
c.remove(a) # remove it from the list of choices
b = random.choice(c) # pick the second (e.g. by computer)
print (b) 

你可以这样做:

from random import choice

symbols = ["rock","paper","scissors"]

try:    
    player_input = int(input("Please type 1 for rock, 2 for paper, and 3 for scissors. ")) - 1
except (ValueError, TypeError):
    print("Not a valid input")
else:
    symbols_two = [thing for thing in symbols if thing != symbols[player_input]]

    print('random answer: {}'.format(choice(symbols_two)))
  • 此代码未测试错误

简单而明显的解决方案是循环,直到得到一个与用户选择的值不同的随机值。使用备选方案创建一个
集合
,移除已经获取的成员,并将剩余部分传递给随机化函数并不困难。问之前你搜索过了吗?我已经把标签去掉了。该标记寻址库,但不适用于用Python编写的游戏。需要指出的是,这会永久性地修改
符号。可能要确保它是权威变量的副本;答案可能会更详细地解释这一点。通过
randint
的间接寻址非常嘈杂且不必要地复杂。您需要
random.choice(symbols)
代码将用户的选择分配给
remining_symbol
;随机函数应从实际剩余的
符号中选取,变量可能已重命名。@tripleee感谢您指出这一点。编辑代码,以便在使用pop之前创建一个副本。
pop
的参数应以零为基础(减去一)。thnx这是一个很好的帮助
from random import choice

symbols = ["rock","paper","scissors"]

try:    
    player_input = int(input("Please type 1 for rock, 2 for paper, and 3 for scissors. ")) - 1
except (ValueError, TypeError):
    print("Not a valid input")
else:
    symbols_two = [thing for thing in symbols if thing != symbols[player_input]]

    print('random answer: {}'.format(choice(symbols_two)))