AIML 发表于 2020-10-4 11:03:28

大佬来教教我


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的判断,所以没有输出

昨非 发表于 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,'次')

昨非 发表于 2020-10-4 11:18:07

这么写足够了,何必那么麻烦分大于100,小于100

AIML 发表于 2020-10-4 12:48:42

昨非 发表于 2020-10-4 11:18
这么写足够了,何必那么麻烦分大于100,小于100

谢谢老哥,可是我想用while区分在大于100次数时候,只输出多少正面,多少反面,而在while的次数小于100时候,可以打印出结果。

疾风怪盗 发表于 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('开始抛硬币实验')
whilenum :
    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, '次')


_2_ 发表于 2020-10-4 15:01:47

本帖最后由 _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("反面"), "次")

AIML 发表于 2020-10-5 15:37:48

昨非 发表于 2020-10-4 11:14
因为你在num>100循环跳出后没有了,
num-=1 到num

谢谢了

AIML 发表于 2020-10-5 15:38:44

_2_ 发表于 2020-10-4 15:01
要不要试试更简单的?

谢谢,不过第一行的import我知道是引入,但是 as r是啥意思,小甲鱼在第几课讲到的?
最后还是谢谢你

AIML 发表于 2020-10-5 15:42:02

疾风怪盗 发表于 2020-10-4 13:14
在三楼的代码的基础上,加个判断输出就行了

谢谢老哥

_2_ 发表于 2020-10-5 18:29:07

AIML 发表于 2020-10-5 15:38
谢谢,不过第一行的import我知道是引入,但是 as r是啥意思,小甲鱼在第几课讲到的?
最后还是谢谢你

就是起个别名
import random as r
之后,
以后就可以通过
r.xxx
的方式访问内部的属性和方法
页: [1]
查看完整版本: 大佬来教教我