超级玛尼哄 发表于 2021-6-28 13:06:43

课后题求助

python课后题第16讲,最后一题我想看答案,但是看答案还要钱,我这点币根本不够花的,有没有大佬愿意资助我一下,顺便帮我检查一下写的怎么样{:5_109:} {:5_109:} {:5_109:} {:5_109:}

逃兵 发表于 2021-6-28 14:28:57

请输入抛硬币的次数:99
开始抛硬币实验:
反面 正面 正面 正面 正面 反面 反面 反面 正面 反面 反面 正面 正面 正面 正面 正面 正面 反面 正面 正面 正面 正面 反面 反面 反面 反面 反面 正面 正面 正面 正面 反面 反面 正面 反面 正面 正面 正面 正面 反面 反面 正面 正面 正面 反面 反面 反面 正面 反面 正面 反面 反面 反面 正面 正面 正面 正面 反面 正面 反面 正面 反面 反面 反面 反面 正面 反面 正面 正面 反面 正面 正面 反面 正面 反面 反面 反面 正面 正面 正面 反面 正面 正面 正面 正面 正面 正面 反面 反面 正面 正面 正面 正面 反面 正面 反面 正面 正面 正面 一共模拟了 99 次抛硬币,结果如下:
正面: 58
反面: 41
最多连续正面: 6
最多连续反面: 41

有明显的bug

在else中应该赋值给fm1而非fm2

另外相同的代码写两遍很繁琐,可以合并成一个语句

修改后代码

import random

counts = int(input("请输入抛硬币的次数:"))
i = 0
z = 0
f = 0
fm1 = 0
fm2 = 0
zm1 = 0
zm2 = 0
print("开始抛硬币实验:")

while i < counts:
    num = random.randint(1, 10)
   
    if num % 2:
      fm1 = 0
      zm1 += 1
      if counts < 100:
            print("正面", end=" ")
      z += 1
    else:
      zm1 = 0
      fm1 += 1
      if counts < 100:
            print("反面", end=" ")
      f += 1
    i += 1
    if zm1 > zm2:
      zm2 = zm1
    if fm1 > fm2:
      fm2 = fm1
      

print("一共模拟了",counts,"次抛硬币,结果如下:")
print("正面:",z)
print("反面:",f)
print("最多连续正面:",zm2)
print("最多连续反面:",fm2)


其实买个至尊vip会员支持一下小甲鱼也不错的{:10_277:}

超级玛尼哄 发表于 2021-6-28 15:30:52

逃兵 发表于 2021-6-28 14:28
有明显的bug

在else中应该赋值给fm1而非fm2


感谢老铁,这么明显的bug竟然没发现~
写两遍是为了实现次数大于100不打印出来~
会员要是买的起我早就买了,暂时没有余粮啊{:5_109:}{:5_109:}

逃兵 发表于 2021-6-28 15:46:53

超级玛尼哄 发表于 2021-6-28 15:30
感谢老铁,这么明显的bug竟然没发现~
写两遍是为了实现次数大于100不打印出来~
会员要是买的起我早就买 ...

写一遍就够了,把if counts < 100:判断写在打印前就可以
这样就能满足大于100才打印的要求

超级玛尼哄 发表于 2021-6-28 17:28:22

逃兵 发表于 2021-6-28 15:46
写一遍就够了,把if counts < 100:判断写在打印前就可以
这样就能满足大于100才打印的要求

(⊙o⊙)哦      原来如此,悟了悟了

超级玛尼哄 发表于 2021-6-28 17:31:02

本帖最后由 超级玛尼哄 于 2021-6-28 17:33 编辑

逃兵 发表于 2021-6-28 15:46
写一遍就够了,把if counts < 100:判断写在打印前就可以
这样就能满足大于100才打印的要求

有个问题:
1.如果在里面判断的话,每次执行都要判断一次,是不是计算量会大。多些一遍代码虽然会繁琐一下,但只会执行其中一部分代码,我认为这个效率会高一些。
2.如果这样的话,那么在编程的逻辑中,是优先提升效率,还是优先代码好看。

逃兵 发表于 2021-6-28 19:09:58

超级玛尼哄 发表于 2021-6-28 17:31
有个问题:
1.如果在里面判断的话,每次执行都要判断一次,是不是计算量会大。多些一遍代码虽然会繁琐 ...

优先效率

在时间复杂度和空间复杂度允许的情况下,保证代码的美观

超级玛尼哄 发表于 2021-6-28 20:04:09

逃兵 发表于 2021-6-28 19:09
优先效率

在时间复杂度和空间复杂度允许的情况下,保证代码的美观

受教了~ {:5_109:}
页: [1]
查看完整版本: 课后题求助