Python 为什么我的硬币密码不起作用?
我只是不断地犯一系列错误。如果我只是在第二行结束代码,那么它会正确地返回0或1。所以我想如果我编写了if/else代码,它应该返回专有名称。但是没有用。我也在尝试使用这种风格的代码,而不仅仅是制作投币代码。谢谢您的代码中有无限递归。如果跟踪执行过程,您会得到:Python 为什么我的硬币密码不起作用?,python,Python,我只是不断地犯一系列错误。如果我只是在第二行结束代码,那么它会正确地返回0或1。所以我想如果我编写了if/else代码,它应该返回专有名称。但是没有用。我也在尝试使用这种风格的代码,而不仅仅是制作投币代码。谢谢您的代码中有无限递归。如果跟踪执行过程,您会得到: def coin(): print random.randint(0,1) if (coin() == 0): return Heads else: return Tails co
def coin():
print random.randint(0,1)
if (coin() == 0):
return Heads
else:
return Tails
coin_flip()
我在这里做一个猜测,但我想你要做的是定义
coin\u flip
,而不是coin
。如果我理解正确,以下是你应该写的:
call coin()
print
call coin()
print
call coin()
....
out of memory at some point
然后您可以稍后使用coin\u flip()
调用它
该函数的作用是将
0
或1
的值赋给硬币的名称。如果该值为0,则返回字符串“heads”。否则返回字符串“tails”。您可能希望将random.randint(0,1)返回的值存储在变量中,例如val。
然后在if条件下使用val
def coin_flip():
coin = random.randint(0,1)
if coin == 0:
return 'heads'
else:
return 'tails'
目前,您的代码是无限递归的。而coin\u flip()
在哪里定义?您正在打印随机数,但没有将其分配给可以测试的变量。而你的if
语句只是再次调用你的函数。是的,但为什么他会无限递归呢?这并没有告诉他是什么导致了你所指出的问题。等等,下划线在python中代表什么?我主要做了R的东西,其中下划线或其他什么只是变量名。但是下划线在python中起到了一定的作用,所以“coin_flip”不仅仅代表一个变量名?如果像命令之类的“翻转”,下划线只是函数名的正常部分。没什么特别的。您甚至可以调用一个变量,比如。
(当然,这不是一个好主意)。
if (val == 0):
return Heads
else:
return Tails