鱼C论坛

 找回密码
 立即注册
查看: 2403|回复: 13

[已解决]零基础学习PYTHON第8课作业

[复制链接]
发表于 2021-1-27 13:03:18 | 显示全部楼层 |阅读模式

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

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

x
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=i+1

这里面的num = random.randint(1, 10),是什么逻辑呢?
num%2,是什么意思呢?

请各位大神帮忙解答下啊?谢谢啦
最佳答案
2021-1-27 14:40:27
本帖最后由 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-27 13:05:54 | 显示全部楼层
本帖最后由 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-27 13:07:49 | 显示全部楼层
1,求一个1-10之间的随机整数。
2,判断 num 的奇偶性。
这个算基础数学知识吧,一个数能整除2,代表它是偶数,否则就是奇数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-27 14:15:16 | 显示全部楼层
num = random.randint(1, 10) 随机产生一个0到10整数,这个我明白,我不明白的是它在这段代码中的作用,是什么呢?为什么不是0到200呢,不是最多抛200次呢吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-27 14:40:27 | 显示全部楼层    本楼为最佳答案   
本帖最后由 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-27 14:41:16 | 显示全部楼层
2021hahaha 发表于 2021-1-27 14:15
num = random.randint(1, 10) 随机产生一个0到10整数,这个我明白,我不明白的是它在这段代码中的作用,是 ...

限定了随机范围,(上限,下限)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-27 14:45:17 | 显示全部楼层
            具体数据范围并不重要,随便选,什么范围都可以,重要的是,在这个范围内必须有相同数量的奇数和偶数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-27 15:10:04 | 显示全部楼层
Peteryo01223 这个人讲的很好 了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-27 15:19:50 | 显示全部楼层
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也可以,因为它范围内的奇数和偶数数量也是相同的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-27 15:28:44 | 显示全部楼层
2021hahaha 发表于 2021-1-27 15:19
就是这里num的作用,只是一个概率的事情,是吗?1~200和1~10中奇数和偶数的数量都是相同的,就是用用3~6 ...

对,只要 Python 在此的 ‘ num 求奇偶 ’ 的程序,能模拟出抛硬币一正一反的随机概率,都是对的,范围何止1-10,有无数种可能呢,FishC 老师在答案中仅举一例而已。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-27 15:29:18 | 显示全部楼层
Python初学者8号 发表于 2021-1-27 15:10
Peteryo01223 这个人讲的很好 了

相互帮助啦。谢谢鼓励
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-27 15:34:15 | 显示全部楼层
Peteryo01223 发表于 2021-1-27 15:28
对,只要 Python 在此的 ‘ num 求奇偶 ’ 的程序,能模拟出抛硬币一正一反的随机概率,都是对的,范围何 ...

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

使用道具 举报

 楼主| 发表于 2021-1-27 15:35:09 | 显示全部楼层
谢谢各位大神的耐心解答,感谢感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-27 16:43:11 | 显示全部楼层
Peteryo01223 发表于 2021-1-27 15:29
相互帮助啦。谢谢鼓励

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-16 19:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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