我很会Python 发表于 2023-11-16 15:56:48

抛硬币问题

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次则结果不输出,只输出又多少次正反面,但是不知到怎么改了

Mike_python小 发表于 2023-11-16 15:58:40

你可以通过在代码中添加一个条件判断来实现这个要求。修改后的代码如下所示:


import random

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

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

while times > 0:
    result = random.choice(c)

    if times <= 100:
      print(result)

    times -= 1
   
    if result == "正面":
      a += 1
      e += 1
      f = 0
    else:
      b += 1
      e = 0
      f += 1

if d <= 100:
    print("一共模拟了", d, "次抛硬币")
    print("正面", a, "次", "反面", b, "次")
    print("正面连续", e, "次", "反面连续", f, "次")
else:
    print("一共模拟了", d, "次抛硬币")
    print("正面", a, "次", "反面", b, "次")


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

请注意,代码排版可能在显示时有所变化,请在你的本地环境中使用适当的代码编辑器来确保正确的缩进和格式。

isdkz 发表于 2023-11-16 16:04:43

import random

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

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

while times > 0:
    result = random.choice(c)
    if times <= 100:
      print(result)
    times -= 1

    if result == "正面":
      a += 1
      e += 1
      f = 0
    else:
      b += 1
      f += 1
      e = 0

print("一共模拟了", d, "次抛硬币,结果如下:")
print("正面", a, "次", "反面", b, "次")
print("正面连续", e, "次", "反面连续", f, "次")


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

以上是修改后的代码,现在无论输入的次数是多少,都能正确输出每次的结果,同时保留了统计正反面次数和连续次数的功能。
页: [1]
查看完整版本: 抛硬币问题