湘潭小五 发表于 2021-3-10 22:39:16

第16课作业求教

这是标准答案:
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="")


这是我想破脑袋想出来的:
import random


a = input("请输次数:")
a = int(a)
b = 0
c = 0
d = "正面"
e = "反面"
f = d,e
h = a

while a != 0:
    g = random.choice(f)
    if h < 100:
      print(g,end=" ")
      a = a - 1
      if g == "正面":
            b = b + 1
      elif g == "反面":
            c = c + 1
    if h > 100:
      
      a = a - 1
      if g == "正面":
            b = b + 1
      elif g == "反面":
            c = c + 1
   
print("一共进行了",h,"次实验,如果如下:")            
print("正面:",b,"次")
print("反面:",c ,"次")

请问下我这样应该也可以吧,我执行了几次好像都没问题
      
      

小伤口 发表于 2021-3-10 22:46:13

你没有判断实验100次的情况
输入100会有问题
再判断一下应该就没有问题了{:5_102:}
厉害~

湘潭小五 发表于 2021-3-10 22:48:06

小伤口 发表于 2021-3-10 22:46
你没有判断实验100次的情况
输入100会有问题
再判断一下应该就没有问题了


谢谢提醒, if h >= 100:我改成这样就不会报错了,写的乱,应该逻辑是通的吧

小伤口 发表于 2021-3-10 22:49:07

还有应该是结果如下{:10_256:}
print("一共进行了",h,"次实验,如果如下:")   

小伤口 发表于 2021-3-10 22:51:16

本帖最后由 小伤口 于 2021-3-10 22:53 编辑

湘潭小五 发表于 2021-3-10 22:48
谢谢提醒, if h >= 100:我改成这样就不会报错了,写的乱,应该逻辑是通的吧

逻辑{:10_254:}没问题

如果解决了
请设置最佳吧{:10_297:}

湘潭小五 发表于 2021-3-10 22:58:16

小伤口 发表于 2021-3-10 22:49
还有应该是结果如下

{:9_233:}汉字错误也帮我挑出来了,牛皮

小伤口 发表于 2021-3-10 23:03:03

湘潭小五 发表于 2021-3-10 22:58
汉字错误也帮我挑出来了,牛皮

嘻嘻{:10_275:}
页: [1]
查看完整版本: 第16课作业求教