会写bug的大佬 2022-09-06 19:08

python多次调用函数只返回第一次调用结果其余结果为0

掷骰子的实验,要算符合要求的投掷次数
问题相关代码

st=[2,3,4,5,6,7,8,9,10,11,12]
def times(n): #求st内数字至少出现一次的投掷次数
  for i in range(n):
      a=shake(2)#调用前面的函数
      if a in st:
        st.remove(a)
      elif len(st)==0:
         break
      return i

这上面都没问题 打出print(times(100))可以得到正常的结果,但是加入循环后发现,这个函数只能调用一次,第二次开始结果都是0

for i in range(100):

    a=times(1000) print(a)

运行结果及报错内容
51
0
0
0
0
0
0
0
0
0
(后面都是0就不打了)

我想要达到的结果
想要输出至少一千个times,卡在这步了,求各位指教

1条回答
最新 最热
阿靠北啊 2022-09-06 19:11

因为第一次remove之后有的元素向没了
st=[2,3,4,5,6,7,8,9,10,11,12放在函数开头就好了

举报

10