鱼C论坛

 找回密码
 立即注册
查看: 2073|回复: 10

[已解决]大佬来教教我

[复制链接]
发表于 2020-10-4 11:03:28 | 显示全部楼层 |阅读模式

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

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

x
20201004105502.png
import random
num=int(input('请输入你想要抛硬币的次数'))
zheng=0
fan=0
cishu=num
print('开始抛硬币实验')
if 0<num<100:
    while 100>num>0:
        i=random.randint(1,10)
        if i%2==0:
            zheng+=1
            print('正面')
            print('\n')
        elif i%2!=0:
            fan+=1
            print('反面')
            print('\n')
        num-=1
    if num==0:
        print('实验了',cishu,'次','其中正面',zheng,'次','其中反面',fan,'次')
elif num>100:
    while not 100>num>0:
        i=random.randint(1,10)
        if i%2==0:
            zheng+=1
        elif i%2!=0:
            fan+=1
        num-=1
    if num==0:
        print('实验了',cishu,'次','其中正面',zheng,'次','其中反面',fan,'次')


请问大佬们为什么我的抛硬币次数大于100时候,就跑不起来呢,第二个while循环启动不了哇
最佳答案
2020-10-4 11:14:10
因为你在num>100循环跳出后没有了,
num-=1 到num<100后,只执行了num=0的判断,所以没有输出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-4 11:14:10 | 显示全部楼层    本楼为最佳答案   
因为你在num>100循环跳出后没有了,
num-=1 到num<100后,只执行了num=0的判断,所以没有输出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-4 11:17:33 | 显示全部楼层
num=int(input('请输入你想要抛硬币的次数'))
zheng=0
fan=0
cishu = num 
print('开始抛硬币实验')
while num>0:
    i=random.randint(1,10)
    if i%2==0:
        zheng+=1
        print('正面')
    elif i%2!=0:
        fan+=1
        print('反面')
    num-=1
print('实验了',cishu,'次','其中正面',zheng,'次','其中反面',fan,'次')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-4 11:18:07 | 显示全部楼层
这么写足够了,何必那么麻烦分大于100,小于100
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-4 12:48:42 | 显示全部楼层
昨非 发表于 2020-10-4 11:18
这么写足够了,何必那么麻烦分大于100,小于100

谢谢老哥,可是我想用while区分在大于100次数时候,只输出多少正面,多少反面,而在while的次数小于100时候,可以打印出结果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-4 13:14:25 | 显示全部楼层
本帖最后由 疾风怪盗 于 2020-10-4 13:18 编辑
AIML 发表于 2020-10-4 12:48
谢谢老哥,可是我想用while区分在大于100次数时候,只输出多少正面,多少反面,而在while的次数小于100时 ...


在三楼的代码的基础上,加个判断输出就行了
import random

num = int(input('请输入你想要抛硬币的次数'))
zheng = 0
fan = 0
cishu = num
print('开始抛硬币实验')
while  num :
    i = random.randint(1, 10)
    if i % 2 == 0:
        zheng += 1
        if cishu <=100:
            print(f'第{cishu-num+1}次:正面')
    elif i % 2 != 0:
        fan += 1
        if cishu <= 100:
            print(f'第{cishu-num+1}次:反面')
    num -= 1
else:
    print('实验了', cishu, '次', '其中正面', zheng, '次', '其中反面', fan, '次')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-4 15:01:47 From FishC Mobile | 显示全部楼层
本帖最后由 _2_ 于 2020-10-4 15:05 编辑

要不要试试更简单的?
import random as r
result = []

while len(result) < 100:
    value = r.randint(0, 1)
    if not value:
        result.append("正面")
    else:
        result.append("反面")

print("正面: ", result.count("正面"), "次")
print("反面: ", result.count("反面"), "次")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-5 15:37:48 | 显示全部楼层
昨非 发表于 2020-10-4 11:14
因为你在num>100循环跳出后没有了,
num-=1 到num

谢谢了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-5 15:38:44 | 显示全部楼层
_2_ 发表于 2020-10-4 15:01
要不要试试更简单的?

谢谢,不过第一行的import我知道是引入,但是 as r是啥意思,小甲鱼在第几课讲到的?
最后还是谢谢你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-5 15:42:02 | 显示全部楼层
疾风怪盗 发表于 2020-10-4 13:14
在三楼的代码的基础上,加个判断输出就行了

谢谢老哥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-5 18:29:07 From FishC Mobile | 显示全部楼层
AIML 发表于 2020-10-5 15:38
谢谢,不过第一行的import我知道是引入,但是 as r是啥意思,小甲鱼在第几课讲到的?
最后还是谢谢你

就是起个别名
import random as r
之后,
以后就可以通过
r.xxx
的方式访问内部的属性和方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-18 10:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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