零基础学习PYTHON第8课作业
import randomcounts = int(input("请输入抛硬币的次数:"))
i = 0
print("开始抛硬币实验:")
while i < counts:
num = random.randint(1, 10)
if num % 2:
print("正面,end=" ")
else:
print("反面",end=" ")
i=i+1
这里面的num = random.randint(1, 10),是什么逻辑呢?
num%2,是什么意思呢?
请各位大神帮忙解答下啊?谢谢啦 本帖最后由 sunrise085 于 2021-1-27 13:07 编辑
num = random.randint(1, 10)
随机生成一个1~10的整数(1,2,3,4,5,6,7,8,9,10),赋值给num
这里randint是random模块的一个方法,作用就是随机产生一个整数
num%2是num对2求余,结果为0或1 1,求一个1-10之间的随机整数。
2,判断 num 的奇偶性。
这个算基础数学知识吧,一个数能整除2,代表它是偶数,否则就是奇数。 num = random.randint(1, 10) 随机产生一个0到10整数,这个我明白,我不明白的是它在这段代码中的作用,是什么呢?为什么不是0到200呢,不是最多抛200次呢吗? 本帖最后由 Peteryo01223 于 2021-1-27 14:59 编辑
2021hahaha 发表于 2021-1-27 14:15
num = random.randint(1, 10) 随机产生一个0到10整数,这个我明白,我不明白的是它在这段代码中的作用,是 ...
原目的:利用python,随机产生正或反。就像二楼高手说的,随机生成一个1~10的整数(1,2,3,4,5,6,7,8,9,10),赋值给num。
FishC 的思路:1-10中随机取数,除以二,整除的就设定为“正面”,不能整除就为“反面”。
你的提问:为何必须要在1-10的范围内,进行随机取数?
我的解答:其实,你说得对,完全可以在 1至200 中随机取,求奇偶,定正反。亦或,在 101至200 中随机取,或在 5至10 中间随机取,甚至于在 0和1 中间取,等等。只要你确保,随机取数的范围中,偶数和奇数一样多即可。0至200就不对了,这里有201个数,因为0的存在,多了一个能被整除的(偶数)。0 是自然数,但 0 是不是偶数,在此不深入讨论,反正Python里,0除以2,结果是0.0,没报错,可以当偶数用。
>>> 0/2
0.0 2021hahaha 发表于 2021-1-27 14:15
num = random.randint(1, 10) 随机产生一个0到10整数,这个我明白,我不明白的是它在这段代码中的作用,是 ...
限定了随机范围,(上限,下限) 具体数据范围并不重要,随便选,什么范围都可以,重要的是,在这个范围内必须有相同数量的奇数和偶数。 Peteryo01223 这个人讲的很好 了 Peteryo01223 发表于 2021-1-27 14:40
原目的:利用python,随机产生正或反。就像二楼高手说的,随机生成一个1~10的整数(1,2,3,4,5,6,7,8,9, ...
就是这里num的作用,只是一个概率的事情,是吗?1~200和1~10中奇数和偶数的数量都是相同的,就是用用3~6也可以,因为它范围内的奇数和偶数数量也是相同的? 2021hahaha 发表于 2021-1-27 15:19
就是这里num的作用,只是一个概率的事情,是吗?1~200和1~10中奇数和偶数的数量都是相同的,就是用用3~6 ...
对,只要 Python 在此的 ‘ num 求奇偶 ’ 的程序,能模拟出抛硬币一正一反的随机概率,都是对的,范围何止1-10,有无数种可能呢,FishC 老师在答案中仅举一例而已。 Python初学者8号 发表于 2021-1-27 15:10
Peteryo01223 这个人讲的很好 了
相互帮助啦。谢谢鼓励 Peteryo01223 发表于 2021-1-27 15:28
对,只要 Python 在此的 ‘ num 求奇偶 ’ 的程序,能模拟出抛硬币一正一反的随机概率,都是对的,范围何 ...
好的,了解了,多谢啦! 谢谢各位大神的耐心解答,感谢感谢{:10_303:} Peteryo01223 发表于 2021-1-27 15:29
相互帮助啦。谢谢鼓励
加油加油
页:
[1]