所以对蟒蛇来说是全新的,我遇到了一些我无法解释的东西,更不用说单词来找到可能的答案了。我做了一个小小的硬币翻转程序:
import random
print("I will flip a coin 1000 times")
input()
flips = 0
heads = 0
while flips < 1000:
if random.randint(0, 1) == 1:
heads = heads + 1
flips = flips + 1
print()
print("Out of 1000 coin tosses, heads came up " + str(heads) + " times!")
这个版本的程序不起作用,它在1000次翻转后告诉我,每次都有1000个头。
import random
print("I will flip a coin 1000 times")
input()
flips = 0
heads = 0
while flips < 1000:
if random.randint(0, 1) == 1:
heads = heads + 1
flips = flips + 1
print()
print("Out of 1000 coin tosses, heads came up " + str(heads) + " times!")
这个版本的程序运行得很完美,但请注意我在while循环中更改了“翻转”的缩进。 谁能告诉我为什么会这样?提前谢谢!
答案 0 :(得分:1)
那是因为如果那&#34;翻转&#34; line在if
中,然后只有在head时才会执行。因此,您的硬币翻转计数仅在其成为头部时递增,因此当flips
达到1000时,这意味着您已经执行了if
1000次并获得了1000个头。
(当你得到尾巴时,flips
不会增加并且循环继续前进并且没有任何反应)
答案 1 :(得分:1)
Python语言依赖于缩进。与大多数基于C的语言不同,它使用缩进来分隔块。
所以你的两个脚本有不同的语义:
if random.randint(0, 1) == 1:
heads = heads + 1
flips = flips + 1
如果条件为True,...将增加两个变量。
if random.randint(0, 1) == 1:
heads = heads + 1
flips = flips + 1
...仅在条件为True时才会递增heads
,并且将始终递增flips