鱼C论坛

 找回密码
 立即注册
查看: 2253|回复: 7

[已解决]python 0基础最新版第八(上)作业

[复制链接]
发表于 2020-11-5 23:22:40 | 显示全部楼层 |阅读模式

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

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

x
num = random.randint(1, 10)

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

    i =i + 1
求大佬指点:为什么要取范围(1,10)。。
                   以及那个 %2 是什么意思啊 。。。
最佳答案
2020-11-6 00:00:59
本帖最后由 jackz007 于 2020-11-6 00:27 编辑
num = random.randint(1, 10)
        这一句从 1 - 10 的范围内随机抽取一个数值赋值给变量 num,在这个范围内,有 5 个奇数,5 个偶数,抽到奇数、偶数的概率各占 50%。当然,你完全可以选择在其他数值范围,比如, 1 - 10000 的范围内随机抽取,对于变量 num 而言,无论数值是多少,无非就是奇数或者偶数,对最后结果并不产生实质性的影响。
if num % 2:
        这一句的意图是根据数值判断随机数 num 的奇偶性。% 是取余操作,表达式 num % 2 意思是取 num 除以 2 的余数,如果 num 是偶数,则余数为 0,如果是奇数,则余数为 1。作为逻辑表达结果,余数为 0 时,对应于 False,余数为 1 时,对应于 True。就是说,当 num 为奇数时 if num % 2 的条件为真,否则为假。在本例中,奇数代表的是正面,偶数代表的是反面。
        仔细考察下面的代码可以加深理解:
#-*-coding:gbk-*-

import random

counts , i = int(input('请输入抛硬币的次数:') . strip()) , 0
for _ in range(counts) :
    num = random . randint(1 , 10000)
    if num % 2 :
        print('正面')
        i += 1
    else:
        print('背面')
print('一共抛币' , counts , '次,其中,正面' , i , '次,背面' , counts - i , '次')

屏幕截图 2020-11-05 231534.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-5 23:28:07 | 显示全部楼层
本帖最后由 昨非 于 2020-11-5 23:43 编辑

取1到10的10个随机数
if num%2等价于if num%2==1
%2就是对2取余数
意思就是num是奇数
else对应偶数
是个随机数中,奇数和偶数各占50%,用来模拟正面反面的概率相等
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-11-5 23:28:40 | 显示全部楼层
满意的话记得设个最佳答案哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-6 00:00:59 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2020-11-6 00:27 编辑
num = random.randint(1, 10)
        这一句从 1 - 10 的范围内随机抽取一个数值赋值给变量 num,在这个范围内,有 5 个奇数,5 个偶数,抽到奇数、偶数的概率各占 50%。当然,你完全可以选择在其他数值范围,比如, 1 - 10000 的范围内随机抽取,对于变量 num 而言,无论数值是多少,无非就是奇数或者偶数,对最后结果并不产生实质性的影响。
if num % 2:
        这一句的意图是根据数值判断随机数 num 的奇偶性。% 是取余操作,表达式 num % 2 意思是取 num 除以 2 的余数,如果 num 是偶数,则余数为 0,如果是奇数,则余数为 1。作为逻辑表达结果,余数为 0 时,对应于 False,余数为 1 时,对应于 True。就是说,当 num 为奇数时 if num % 2 的条件为真,否则为假。在本例中,奇数代表的是正面,偶数代表的是反面。
        仔细考察下面的代码可以加深理解:
#-*-coding:gbk-*-

import random

counts , i = int(input('请输入抛硬币的次数:') . strip()) , 0
for _ in range(counts) :
    num = random . randint(1 , 10000)
    if num % 2 :
        print('正面')
        i += 1
    else:
        print('背面')
print('一共抛币' , counts , '次,其中,正面' , i , '次,背面' , counts - i , '次')

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

使用道具 举报

 楼主| 发表于 2020-11-6 12:46:06 | 显示全部楼层
昨非 发表于 2020-11-5 23:28
取1到10的10个随机数
if num%2等价于if num%2==1
%2就是对2取余数

感谢感谢,结合你和另一个大佬的答案,我总算搞懂啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-6 12:48:09 | 显示全部楼层
jackz007 发表于 2020-11-6 00:00
这一句从 1 - 10 的范围内随机抽取一个数值赋值给变量 num,在这个范围内,有 5 个奇数,5 个偶 ...


太感谢了,解释的很详细,结合你的和另一个大佬的回复,我算是明白了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-6 12:50:38 | 显示全部楼层
昨非 发表于 2020-11-5 23:28
满意的话记得设个最佳答案哈

抱歉抱歉,我真的很想两个一起设置啊。。
两个答案结合起来就很完美啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-6 13:03:13 From FishC Mobile | 显示全部楼层
ebusen 发表于 2020-11-6 12:50
抱歉抱歉,我真的很想两个一起设置啊。。
两个答案结合起来就很完美啦

没事,他的详细,给他也好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-18 00:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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