梅小西 发表于 2021-11-18 00:13:33

16讲中丢硬币的作业,帮忙看下这样写法为何报错

import random
i = 0
z = 0
f = 0
num = int(input("请输入抛硬币次数:"))
if num < 100:
    print("开始抛硬币实验.....")
    while i < num:
      a = random.randint(1,10)
      if a % 2 == 0:
            print("正面",end=' ')
            z += 1
      else:
            print("反面",end=' ')
            f += 1
      i += 1
    print()
    print("一共模拟了",num,"次抛硬币,结果如下:",end=' ')
    print()
    print("正面",z,"次")
    print("反面",f, "次")
else:
    print("开始抛硬币实验1.....")
    while i < num:
      a = random.randint(1,10)
      if a % 2 == 0:
            z += 1
      else:
            f += 1
      i += i
    print()
    print("一共模拟了",num,"次抛硬币,结果如下:",end=' ')
    print()
    print("正面",z,"次")
    print("反面",f, "次")


当大于100时,下面else执行就报错了,看了半天,没看出什么问题。。

我才不学派森QAQ 发表于 2021-11-18 05:16:49

本帖最后由 我才不学派森QAQ 于 2021-11-18 05:21 编辑

num >= 100 的时候循环体的 i 赋值错了,应该是 i += 1

z5560636 发表于 2021-11-18 09:09:25

else:
    print("开始抛硬币实验1.....")
    while i < num:   
      a = random.randint(1,10)
      if a % 2 == 0:
            z += 1
      else:
            f += 1
      i += i   # else 语句的逻辑有错错误 i += 1
    print()
    print("一共模拟了",num,"次抛硬币,结果如下:",end=' ')
    print()
    print("正面",z,"次")
    print("反面",f, "次")

梅小西 发表于 2021-11-18 12:34:23

我才不学派森QAQ 发表于 2021-11-18 05:16
num >= 100 的时候循环体的 i 赋值错了,应该是 i += 1

好的,谢谢大意了

梅小西 发表于 2021-11-18 12:35:38

z5560636 发表于 2021-11-18 09:09


好的,谢谢大意了,还是要多写写
页: [1]
查看完整版本: 16讲中丢硬币的作业,帮忙看下这样写法为何报错