a13766971255 发表于 2020-12-10 21:19:06

while

本帖最后由 a13766971255 于 2020-12-10 21:33 编辑

c什么的是什么意思

昨非 发表于 2020-12-10 21:23:33

注释里不是有吗?
麻烦说清楚点

a13766971255 发表于 2020-12-10 21:29:41

昨非 发表于 2020-12-10 21:23
注释里不是有吗?
麻烦说清楚点

为什么c head是统计正面的次数?

昨非 发表于 2020-12-10 21:30:44

a13766971255 发表于 2020-12-10 21:29
为什么c head是统计正面的次数?

你上面写的是“连续正面的次数”{:10_277:}

a13766971255 发表于 2020-12-10 21:31:11

昨非 发表于 2020-12-10 21:30
你上面写的是“连续正面的次数”

为什么是连续正面次数?

昨非 发表于 2020-12-10 21:31:43

a13766971255 发表于 2020-12-10 21:31
为什么是连续正面次数?

你就给半截代码谁会知道为什么?

a13766971255 发表于 2020-12-10 21:33:50

昨非 发表于 2020-12-10 21:31
你就给半截代码谁会知道为什么?

我发到标题那里了

昨非 发表于 2020-12-10 21:35:48

a13766971255 发表于 2020-12-10 21:33
我发到标题那里了

发代码,别光发截图啊

难道让我们比着截图一行行敲出来

(还是不全)

建议直接ctrl+a全选,CTRL+c复制,CTRL+v粘贴过来{:10_277:}

a13766971255 发表于 2020-12-10 21:36:21

昨非 发表于 2020-12-10 21:35
发代码,别光发截图啊

难道让我们比着截图一行行敲出来


import random

counts = int(input("请输入抛硬币的次数:"))

# 利用 ignore 变量来判断是否打印每次的结果
if counts > 100:
    ignore = True
else:
    ignore = False

heads = 0 # 统计正面的次数
tails = 0 # 统计反面的次数

last = 0 # 记录上一次的状态,如果是正面设置为1, 反面则设置为2
c_heads = 0 # 统计连续正面的次数
c_tails = 0 # 统计连续反面的次数
max_heads = 0 # 统计连续正面的最多次数
max_tails = 0 # 统计连续反面的最多次数

i = 0
print("开始抛硬币实验……")
while i < counts:
    num = random.randint(1, 10)

    if num % 2:
      heads += 1
      c_heads += 1

      if not ignore:      
            print("正面", end=" ")

      # 如果上一次是反面:将连续正面的次数设置为1
      if last == 2:
            c_heads = 1

      # 判断连续正面的次数是否比max_heads大,如果是,取而代之
      if c_heads > max_heads:
            max_heads = c_heads

      # 将上一次的状态设置为正面
      last = 1
    else:
      tails += 1
      c_tails += 1
      
      if not ignore:
            print("反面", end=" ")

      # 如果上一次是正面:连续反面的次数设置为1
      if last == 1:
            c_tails = 1

      # 判断连续反面的次数是否比max_tails大,如果是,取而代之
      if c_tails > max_tails:
            max_tails = c_tails

      # 将上一次的状态设置为反面
      last = 2
      
    i += 1

print("")
print("一共模拟了", counts, "次抛硬币,结果如下:")
print("正面:", heads, "次", sep="")
print("反面:", tails, "次", sep="")
print("最多连续正面:", max_heads, "次", sep="")
print("最多连续反面:", max_tails, "次", sep="")

昨非 发表于 2020-12-10 21:36:37

还有,你写代码好歹用个idle啥的

记事本像话吗。。。。

WDark 发表于 2020-12-10 21:37:36

这个你自己定义的啊,c是cion硬币,head是头的意思也就是人像的一面,tails指背面,这个定义看你自己你也可以定义成别的

小伤口 发表于 2020-12-10 21:39:04

不是赋值吗

a13766971255 发表于 2020-12-10 21:39:19

昨非 发表于 2020-12-10 21:36
还有,你写代码好歹用个idle啥的

记事本像话吗。。。。

不是,
我是用的idle,但是我找的答案是记事本打开的

昨非 发表于 2020-12-10 21:41:46

a13766971255 发表于 2020-12-10 21:39
不是,
我是用的idle,但是我找的答案是记事本打开的

emmm,我刚刚看了一下,你这个注释已经很详细了

你是哪里不理解

a13766971255 发表于 2020-12-10 21:48:05

昨非 发表于 2020-12-10 21:41
emmm,我刚刚看了一下,你这个注释已经很详细了

你是哪里不理解

   if not ignore:   是什么意思?

昨非 发表于 2020-12-10 21:48:07

大概意思就是:
10以内随机数,
奇数对应正面,偶数对应反面
1、抽到奇数,正面加一,连续正面(c_heads)也+1
①下一次如果不是正面了,连续正面c_heads就要归零重新计数,但再此之前
需要把计数的最大值保存起来,也就是(max_heads)的作用
②下一次还是正面,正面加一,连续正面(c_heads)也+1

2、偶数对应反面,同上,一个道理

昨非 发表于 2020-12-10 21:51:08

本帖最后由 昨非 于 2020-12-10 21:53 编辑

a13766971255 发表于 2020-12-10 21:48
if not ignore:   是什么意思?

# 利用 ignore 变量来判断是否打印每次的结果
if counts > 100:
    ignore = True
else:
    ignore = False

设置了个标实符ignore,当输入大于100时,ignore为true,not ignore 就是false,
      if not ignore:      
            print("正面", end=" ")
      if not ignore:
            print("反面", end=" ")

也就是说,输入的抛硬币次数大于100的时候,就不打印出每次的结果(正面还是反面)了

昨非 发表于 2020-12-10 21:53:59

这些在你的注释里写得清清楚楚啊

昨非 发表于 2020-12-10 22:06:05

还没理解吗{:10_245:}

a13766971255 发表于 2020-12-11 11:02:54

昨非 发表于 2020-12-10 22:06
还没理解吗

last是上一次的数值吗? 为什么可以等于2呢?
页: [1] 2
查看完整版本: while