Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.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 硬币条纹不起作用。是因为嵌套的ifs吗?_Python - Fatal编程技术网

Python 硬币条纹不起作用。是因为嵌套的ifs吗?

Python 硬币条纹不起作用。是因为嵌套的ifs吗?,python,Python,试图计算100次抛硬币的正面或反面条纹,但我在条纹数上得到了奇怪的结果。你能帮我理解为什么吗 代码如下: import random numberOfStreaks = 0 streakCounter = 0 headOrTail = [] for coinFlip in range(101): result = random.randint(0,1) headOrTail.append(result) print (headOrTail) for i in headO

试图计算100次抛硬币的正面或反面条纹,但我在条纹数上得到了奇怪的结果。你能帮我理解为什么吗

代码如下:

import random
numberOfStreaks = 0
streakCounter = 0


headOrTail = []

for coinFlip in range(101):
    result = random.randint(0,1)
    headOrTail.append(result)

print (headOrTail)

for i in headOrTail:
    if headOrTail[i]==headOrTail[i-1]:
        streakCounter +=1
        if streakCounter == 6:
            numberOfStreaks += 1
            streakCounter = 0

    else:
        streakCounter = 0



print(numberOfStreaks)

您的问题可能是-for的
循环。你可能想说:

范围内的i(len(headOrTail)):
如果headOrTail[i]==headOrTail[i-1]:
...
更具体地说:如果您有一个列表并使用for循环对其进行迭代,则for循环将获取列表中的元素,而不是大多数其他编程语言中的索引。也就是说,Python的
for
-循环实际上是每个
-循环的

比较:

primes=[2,3,5,7,11,13]
对于素数中的p:
打印(p)#打印2、3、5、7、11、13
对于范围内的i(len(primes)):
打印(i)#打印0、1、2、3、4、5
在Python中使用索引进行迭代的一个好方法是使用
enumerate
,它结合了以下两种方法:

对于枚举中的i,p(素数):
打印(“第%dth个素数为:%d”%(i,p))

“奇怪的结果”不是一个特定的问题。作为问题的一部分,展示您的实际结果,并描述它与预期结果的差异。更好的做法是问一个可重复的问题,f/e,从中读取一组特定的整数,因此您可以问一个特定的预期正确答案,为什么您的代码没有返回。请参阅指南。嗨,感谢您花时间解释发布我的问题的正确方式。我得到的“奇怪”结果来自列表行:print(numberOfStreaks),它应该显示我在列表标题栏中获得6个正面或反面条纹的次数,但是如果我计算列表中的正面和反面,我得到的结果永远都不正确。
循环中的
范围
缺少一个
。您好,谢谢您的回复。我只想浏览一下headOrTail列表,看看里面有多少条6头或6尾的条纹