Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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,我只是不断地犯一系列错误。如果我只是在第二行结束代码,那么它会正确地返回0或1。所以我想如果我编写了if/else代码,它应该返回专有名称。但是没有用。我也在尝试使用这种风格的代码,而不仅仅是制作投币代码。谢谢您的代码中有无限递归。如果跟踪执行过程,您会得到: def coin(): print random.randint(0,1) if (coin() == 0): return Heads else: return Tails co

我只是不断地犯一系列错误。如果我只是在第二行结束代码,那么它会正确地返回0或1。所以我想如果我编写了if/else代码,它应该返回专有名称。但是没有用。我也在尝试使用这种风格的代码,而不仅仅是制作投币代码。谢谢

您的代码中有无限递归。如果跟踪执行过程,您会得到:

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