鱼C论坛

 找回密码
 立即注册
查看: 2551|回复: 27

[已解决]while

[复制链接]
发表于 2020-12-10 21:19:06 | 显示全部楼层 |阅读模式

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

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

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

c什么的是什么意思
最佳答案
2020-12-11 11:07:55
a13766971255 发表于 2020-12-11 11:02
last是上一次的数值吗? 为什么可以等于2呢?

last只表示状态
用于区分是否连续,他不是值
捕获.PNG
捕获1.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-12-10 21:23:33 | 显示全部楼层
注释里不是有吗?
麻烦说清楚点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-10 21:29:41 | 显示全部楼层
昨非 发表于 2020-12-10 21:23
注释里不是有吗?
麻烦说清楚点

为什么c head是统计正面的次数?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-10 21:30:44 | 显示全部楼层
a13766971255 发表于 2020-12-10 21:29
为什么c head是统计正面的次数?

你上面写的是“连续正面的次数”
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-10 21:31:11 | 显示全部楼层
昨非 发表于 2020-12-10 21:30
你上面写的是“连续正面的次数”

为什么是连续正面次数?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-10 21:31:43 | 显示全部楼层
a13766971255 发表于 2020-12-10 21:31
为什么是连续正面次数?

你就给半截代码谁会知道为什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-10 21:33:50 | 显示全部楼层
昨非 发表于 2020-12-10 21:31
你就给半截代码谁会知道为什么?

我发到标题那里了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-10 21:35:48 | 显示全部楼层

发代码,别光发截图啊

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

(还是不全)

建议直接ctrl+a全选,CTRL+c复制,CTRL+v粘贴过来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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="")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-10 21:36:37 | 显示全部楼层
还有,你写代码好歹用个idle啥的

记事本像话吗。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-10 21:37:36 From FishC Mobile | 显示全部楼层
这个你自己定义的啊,c是cion硬币,head是头的意思也就是人像的一面,tails指背面,这个定义看你自己你也可以定义成别的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-10 21:39:04 | 显示全部楼层
不是赋值吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-10 21:39:19 | 显示全部楼层
昨非 发表于 2020-12-10 21:36
还有,你写代码好歹用个idle啥的

记事本像话吗。。。。

不是,
我是用的idle,但是我找的答案是记事本打开的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-10 21:41:46 | 显示全部楼层
a13766971255 发表于 2020-12-10 21:39
不是,
我是用的idle,但是我找的答案是记事本打开的

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

你是哪里不理解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-10 21:48:05 | 显示全部楼层
昨非 发表于 2020-12-10 21:41
emmm,我刚刚看了一下,你这个注释已经很详细了

你是哪里不理解

   if not ignore:   是什么意思?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

2、偶数对应反面,同上,一个道理
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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的时候,就不打印出每次的结果(正面还是反面)了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-10 21:53:59 | 显示全部楼层
这些在你的注释里写得清清楚楚啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-10 22:06:05 | 显示全部楼层
还没理解吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-11 11:02:54 | 显示全部楼层

last是上一次的数值吗? 为什么可以等于2呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-17 03:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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