简单的while循环,没有按预期工作。我正在尝试创建一个函数来模拟一个骰子的滚动,并保持结果的运行总数,直到该总数为>;=m,此时它应该停止。我想知道最后的总数是多少,以及到那里需要多少卷。你知道吗
目前它滚动两次,报告总数为9。我已经检查了循环外的代码,它做了它应该做的事情(即,这3行:r = rdm.randint(1,6)
,tot += r
,rolls.append(r)
)。你知道吗
我错过了什么??你知道吗
def roll(m):
rolls = []
tot = 0
while tot < m:
r = rdm.randint(1,6)
tot += r
rolls.append(r)
return tot
return rolls
return r
m=100
roll(m)
print "The number of rolls was", len(rolls)
print "The total is", tot
您只能有一个return语句。使用逗号分隔返回值,并在使用多个赋值调用函数时将它们赋给变量。你知道吗
返回总数,转鼓,r
当你调用函数时:
tot,转鼓,r=转鼓(m)
似乎您对控件如何从函数返回以及如何返回值有误解。当前的问题与while循环无关,而与处理函数返回的方式无关。你知道吗
您应该了解,可以有多个返回路径,但是对于任何特定的执行,只执行一个返回,序列路径中的任何后续返回都将被忽略。你知道吗
此外,还需要一种捕获返回值的方法,它不能自动污染全局命名空间
所以要总结和解决你的问题,一个可能的出路是
一般来说,这应该是可行的,但是对于一个函数来说,一行使用多个return语句是行不通的。函数计算
return
的那一刻,该函数停止激发。如果要返回多个值,请返回元组:相关问题 更多 >
编程相关推荐