我正在尝试用Python创建一个石头、布、剪刀的游戏。我是一个新手,所以请原谅这个看似简单的问题。我正在创建一个函数,可以通过用户的选择运行,并将其与计算机的随机选择进行比较。我想结果显示为打印声明,但我一直没有得到任何反馈。请注意,我知道还有更多潜在的结果,到目前为止,我只测试结果,如果用户选择“岩石”。你知道吗
以下是代码部分:
import random
rkprsr = ['rock', 'paper', 'scissors']
random.shuffle(rkprsr)
def gameplay (user_choice):
dealer_choice = rkprsr.pop()
if user_choice == 'rock' and dealer_choice == 'paper':
print ('You selected rock and I selected paper. My paper covers your rock. You lose.')
elif user_choice == 'rock' and dealer_choice == 'scissors':
print ('You selected rock and I selected scissors. Your rock crushes my scissors. You win!')
elif user_choice == 'rock' and dealer_choice == 'rock':
print ('You selected rock and I selected rock. Stalemate. We tied.')
return
user_choice = input ('Please type rock, paper, or scissors:')
print('')
print('')
user_choice = user_choice.lower
print (gameplay(user_choice))
您有一个空的
return
语句,它将返回None
。所有打印都在函数本身内完成,因此不需要打印gameplay(user_choice)
,也不需要在函数中有return
语句。简单地说,它应该做你所期望的。None
是该函数调用的返回值,因此它被打印出来。你知道吗编辑:正如其他海报所注意到的,
user_choice.lower
需要括号才能正常工作您可能正在尝试执行以下操作:
函数
gameplay
将返回一个字符串,如果您愿意,可以在外部作用域中打印该字符串。你知道吗我看到两个问题。首先,
lower
需要括号,否则user_choice
将是函数对象而不是字符串。这就是为什么即使用户输入“rock”,也没有任何if
条件通过。第二,打印gameplay
的结果将始终打印None
,因为这是在return
语句后面没有任何内容时返回的结果。(或者如果你根本没有return语句)。你知道吗相关问题 更多 >
编程相关推荐