ebusen 发表于 2020-11-15 13:03:54

抛硬币问题

import random

counts = int(input("请输入抛硬币的次数:"))

# 利用 ignore 变量来判断是否打印每次的结果
if counts > 100:
    ignore = True
else:
    ignore = False

heads = 0 # 统计正面的次数
tails = 0 # 统计反面的次数

i = 0
print("开始抛硬币实验……")
while i < counts:
    num = random.randint(1, 10)

    if num % 2:
      heads += 1
      if not ignore:      
            print("正面", end=" ")
    else:
      tails += 1
      if not ignore:
            print("反面", end=" ")

    i += 1

print("")
print("一共模拟了", counts, "次抛硬币,结果如下:")
print("正面:", heads, "次", sep="")
print("反面:", tails, "次", sep="")

哪位大佬能帮我分析一下not ignore在这里的含义(具体一点的那种。。我发过一次但没有找到想要的答案{:10_266:} )

Twilight6 发表于 2020-11-15 13:15:44

本帖最后由 Twilight6 于 2020-11-15 13:16 编辑



你理解 ignore 的含义就行,这里ignore是当你输入的值大于 100 时候

if not ignore 就不符合条件,就不会进行打印正反面的结果

反之当 你输入的 counts 的值小于 100 时候, not ignore 结果为 True 就会打印每次抛硬币的结果

jackz007 发表于 2020-11-15 13:32:09

counts = int(input("请输入抛硬币的次数:"))

if counts > 100:
    ignore = True
else:
    ignore = False
. . . . . .
while i < counts:
. . . . . .
    if num % 2:
. . . . . .
      if not ignore:      
            print("正面", end=" ")
    else:
. . . . . .
      if not ignore:
            print("反面", end=" ")
      显然,ignore 的数值受控于 counts,只有 counts > 100 的时候才会是 True,否则是 False,再看看 ignore 在代码中起了什么作用,显然,这个变量控制是否打印每一次的抛币结果,只有 ignore 的值为 False 的时候才打印。总结一下,就是只有在抛币次数不超过 100 次的时候才会打印每一次的抛币结果,否则,当然是不打印。

ebusen 发表于 2020-11-15 13:41:15

Twilight6 发表于 2020-11-15 13:15
你理解 ignore 的含义就行,这里ignore是当你输入的值大于 100 时候

if not ignore 就不符合条 ...

就是说 if 后面如果是是“false”,就不能执行吗可是if 后面接的不是条件吗 这。。。

Twilight6 发表于 2020-11-15 13:42:57

本帖最后由 Twilight6 于 2020-11-15 13:44 编辑

ebusen 发表于 2020-11-15 13:41
就是说 if 后面如果是是“false”,就不能执行吗可是if 后面接的不是条件吗 这。。。



对,if 判断的条件本质就是判断 布尔类型值

True 的意思是真,False 为假 即True 是符合条件 ,False 是不符合条件

举个例子:

if 100 > 10:因为 100 > 10 为真,所以返回 True ,即 if True: 符合条件,执行 if 的代码块

ebusen 发表于 2020-11-15 13:50:05

Twilight6 发表于 2020-11-15 13:42
对,if 判断的条件本质就是判断 布尔类型值

True 的意思是真,False 为假 即True 是符合条件...

哦哦,懂了谢谢谢谢
页: [1]
查看完整版本: 抛硬币问题