抛硬币问题
import randomcounts = 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:16 编辑
你理解 ignore 的含义就行,这里ignore是当你输入的值大于 100 时候
if not ignore 就不符合条件,就不会进行打印正反面的结果
反之当 你输入的 counts 的值小于 100 时候, not ignore 结果为 True 就会打印每次抛硬币的结果
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 次的时候才会打印每一次的抛币结果,否则,当然是不打印。 Twilight6 发表于 2020-11-15 13:15
你理解 ignore 的含义就行,这里ignore是当你输入的值大于 100 时候
if not ignore 就不符合条 ...
就是说 if 后面如果是是“false”,就不能执行吗可是if 后面接的不是条件吗 这。。。 本帖最后由 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 的代码块
Twilight6 发表于 2020-11-15 13:42
对,if 判断的条件本质就是判断 布尔类型值
True 的意思是真,False 为假 即True 是符合条件...
哦哦,懂了谢谢谢谢
页:
[1]