Simona2099 发表于 2021-4-8 14:18:16

关于抛硬币试验课后作业的疑问

小甲鱼的代码如下

import random

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

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

    if num % 2:
      print("正面", end=" ")
    else:
      print("反面", end=" ")

    i += 1



我的代码如下:
import random#导入随机函数#

counts = input("请输入抛硬币的次数:")# 接收用户输入并将数值赋值给 counts 变量 #
i = 0

print("开始抛硬币实验:")
while i < int(counts):
    num=random.randint(0,int(counts))# 生成一个随机数num #

    if num % 2:
         print('正面',end=' ') # 打印结果 #

    else:
         print('反面',end=' ')# 打印结果 #

    i += 1
   

我的代码也能实现,不过我不明白怎么能让抛硬币的次数是正好是用户输入的值,虽然我的代码实现了,不过我是真心没搞懂怎么实现的。
我个人猜想关键在于i += 1 是和“if else”语句并列的缩进。但我不能理解,请各位大神赐教。

9797nobean 发表于 2021-4-8 14:36:35

先输入一个数   i一开始是零 执行完if   else   i 1继续while循环 比如先输入 2   i为0一次   i为2一次 总共俩次 以此类推

9797nobean 发表于 2021-4-8 14:38:51

打错了i为1 一次   还有上面的if   else   i加1

逃兵 发表于 2021-4-8 15:01:02

重点在这两句
while i < int(counts):
    ...
    i += 1
你输入的值counts决定了循环的次数

当 i < int(counts)时,循环会运行

当i==int(counts)时,循环就终止了

if ... else ...语句与i += 1是相同缩进的,这意味他们的级别是同等,只遵守从上向下运行的顺序就可以了

if ... else ...语句运行结束后,运行i +=1

Simona2099 发表于 2021-4-9 10:52:00

逃兵 发表于 2021-4-8 15:01
重点在这两句

你输入的值counts决定了循环的次数


感谢答疑,我一直纠结在num,其实重点是i<counts的比较。。。疏忽了
页: [1]
查看完整版本: 关于抛硬币试验课后作业的疑问