我已阅读了50多篇类似'标题'还没有回答我的问题。
如果此问题重复,请链接[求助]帖子。使用Python 2.7.7
count = 0
playerChoice = str(raw_input("What do you do this turn? "))
if playerChoice() == 'r':
count = count + 1
print "Added one bullet. ", count
它给出的错误是:
if playerChoice() == 'r':
TypeError: 'str' object is not callable
根据我的理解,我的代码执行此操作:
如果玩家输入str(' r')。 Count将添加一个并打印print语句:"添加一个项目符号。"但是,当你输入' r'在raw_input中。它给出了一个错误。这是为什么?我尝试将%s添加到raw_input(我在另一篇文章中阅读),但是这没有做任何事情。
帮助将不胜感激,谢谢。
答案 0 :(得分:2)
playerChoice
将评估为字符串。所以稍后用playerChoice()
调用它,(在最后添加()
调用变量),抛出一个错误,因为字符串不能像函数那样被调用。
使用playerChoice
来评估字符串:
playerChoice = raw_input("What do you do this turn? ")
if playerChoice == 'r':
count += 1
print "Added one bullet. ", count
答案 1 :(得分:1)
if playerChoice() == 'r':
应为if playerChoice == 'r':
减去()
你不会调用字符串,它不是函数。
同样raw_input("What do you do this turn? ")
已经是一个不需要强制转换的字符串
如果您想要int
:
你必须投射int(raw_input("What do you do this turn? "))
但不能投射字符串。
答案 2 :(得分:0)
playerChoice
是一个变量,而不是一个函数。使用:
if playerChoice == 'r':
而不是playerChoice()
。
答案 3 :(得分:0)
由于playerChoice
是变量而不是对函数调用的引用,因此您不需要使用括号来使用playerChoice。如果使用playerChoice()
,解释器将尝试调用方法,并且因为playerChoice不引用函数调用而失败。
这里要理解的是str(raw_input("What do you do this turn? "))
返回一个字符串,而不是一个函数。因此,您不需要使用括号。