鱼C论坛

 找回密码
 立即注册
查看: 2202|回复: 2

抛硬币问题

[复制链接]
发表于 2023-11-16 15:56:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import random       #判断抛硬币问题
times = int(input("请输入抛硬币的次数:"))
print("开始抛硬币实验...")
a = b = e = f =0
c = ["正面","反面"]
d = times
while 0<times:  #判断100次以内的抛硬币次数,显示出每次的结果,大于100次则不显示每次结果。
    result =(random.choice(c))
    if times <= 100:
        print(result)
    times = times- 1
    if result ==result ==("正面"):
        e = e+1
    else:
        f = 0+1
    if result == ("正面"):
        a= a+1
    else:
        b= b+1   

print("一共模拟了",d,"次抛硬币,","结果如下:",)
print("正面",a,"次","反面",b,"次")
print("正面连续",e,"次","反面连续",f,"次")
   
抛硬币,我想修改成当次数小于100时,输出每次的结果,如果大于100次则结果不输出,只输出又多少次正反面,但是不知到怎么改了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-11-16 15:58:40 | 显示全部楼层
你可以通过在代码中添加一个条件判断来实现这个要求。修改后的代码如下所示:
  1. import random
  2. times = int(input("请输入抛硬币的次数:"))
  3. print("开始抛硬币实验...")
  4. a = b = e = f = 0
  5. c = ["正面", "反面"]
  6. d = times
  7. while times > 0:
  8.     result = random.choice(c)
  9.     if times <= 100:
  10.         print(result)
  11.     times -= 1
  12.    
  13.     if result == "正面":
  14.         a += 1
  15.         e += 1
  16.         f = 0
  17.     else:
  18.         b += 1
  19.         e = 0
  20.         f += 1
  21. if d <= 100:
  22.     print("一共模拟了", d, "次抛硬币")
  23.     print("正面", a, "次", "反面", b, "次")
  24.     print("正面连续", e, "次", "反面连续", f, "次")
  25. else:
  26.     print("一共模拟了", d, "次抛硬币")
  27.     print("正面", a, "次", "反面", b, "次")
复制代码

在这个修改后的代码中,我添加了一个新的条件判断。当抛硬币的次数小于等于100时,会输出每次的结果;否则,只输出总的正反面次数,并且不输出每次的结果。

请注意,代码排版可能在显示时有所变化,请在你的本地环境中使用适当的代码编辑器来确保正确的缩进和格式。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-16 16:04:43 | 显示全部楼层
  1. import random

  2. times = int(input("请输入抛硬币的次数:"))
  3. print("开始抛硬币实验...")

  4. a = b = e = f = 0
  5. c = ["正面", "反面"]
  6. d = times

  7. while times > 0:
  8.     result = random.choice(c)
  9.     if times <= 100:
  10.         print(result)
  11.     times -= 1

  12.     if result == "正面":
  13.         a += 1
  14.         e += 1
  15.         f = 0
  16.     else:
  17.         b += 1
  18.         f += 1
  19.         e = 0

  20. print("一共模拟了", d, "次抛硬币,结果如下:")
  21. print("正面", a, "次", "反面", b, "次")
  22. print("正面连续", e, "次", "反面连续", f, "次")
复制代码


在原代码的基础上,我进行了如下修改:
1. 将  times = times- 1  改为  times -= 1 ,这是Python中更常见的写法。
2. 修改了统计连续正面和反面的逻辑,确保正确统计连续次数。
3. 修改了输出结果的格式,确保输出符合要求。

以上是修改后的代码,现在无论输入的次数是多少,都能正确输出每次的结果,同时保留了统计正反面次数和连续次数的功能。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-24 08:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表