对于一项分配,我们需要创建一个功能,该功能可以掷硬币,另一个可以将硬币掷100次。我能够制作一个掷硬币的函数,但是在尝试使用另一个函数调用100次时陷入困境。这就是我现在所拥有的:
import random
def TC():
face = random.randint(0,1)
if face == 1:
return "head"
else:
return "tail"
print TC()
def ply(flips):
for i in range(flips):
return TC()
print ply(100)
当我运行它时,它只会说“无”。请告诉我我要去哪里了。谢谢!
答案 0 :(得分:0)
刚开始,您的方法命名非常糟糕。我怀疑这是您的教授教您如何命名方法和变量的方式。这很丑陋,违反了Python标准并且难以阅读,我建议您花些时间阅读PEP 8,这是打算编写python的方式。
因此,您应该使用TC
之类的东西代替flip_coin
,而不是ply
甚至是play_coin_flip
之类的东西来代替play
。
接下来,我不知道我是否正在超越所学知识,但是可以使用randon.randint
来代替randon.choice
。
最后,正如其他人所说,当您返回时,您将退出函数中的任何其他执行,并返回在该语句中重新运行的任何变量,从而使您正在执行的循环的任何其他迭代无效。我建议使用类似下面的内容作为更好的程序,并对其进行修正以使其按预期的功能运行。
from random import choice
faces = ['head', 'tail']
def flip_coin():
face = choice(faces)
return face
def play_coin_flip(flips = 1):
for i in range(flips):
print(flip_coin)
if __name__ == "__main__":
play_coin_flip(100)