鱼C论坛

 找回密码
 立即注册
查看: 2164|回复: 8

[已解决]新手一枚,不是很理解作业里的答案,求解

[复制链接]
发表于 2020-4-3 15:23:51 | 显示全部楼层 |阅读模式

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

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

x
这是python写的模拟抛掷硬币的实验
不是很理解if num%2:   
num%2不是取余吗?
放到if语句里是什么意思?难道是True/False的意思?


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
最佳答案
2020-4-3 22:12:36
import random
counts = int(input("请输入抛硬币的次数:"))
i = 0
print("开始抛硬币实验:")

while i < counts:
    num = random.randint(1, 10)   #随机生成1-10的整数
    if num % 2:                   #整数除2求余,奇数除2余数1,if判断为True,打印“正面”,偶数除2余数为0,打印“反面”
        print("正面", end=" ")
    else:
        print("反面", end=" ")

    i += 1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-3 15:26:26 | 显示全部楼层
就是判断这个数字是不是奇数。
因为0是假,如果num/2能整除,它一定是偶数(余数就为0)
而不为0就一定是奇数(余数为1)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-3 17:43:22 | 显示全部楼层
是 True/False 的意思。如果 num % 2 的结果不为 0 则 num % 2 为 True,否则为 False
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-3 22:12:36 | 显示全部楼层    本楼为最佳答案   
import random
counts = int(input("请输入抛硬币的次数:"))
i = 0
print("开始抛硬币实验:")

while i < counts:
    num = random.randint(1, 10)   #随机生成1-10的整数
    if num % 2:                   #整数除2求余,奇数除2余数1,if判断为True,打印“正面”,偶数除2余数为0,打印“反面”
        print("正面", end=" ")
    else:
        print("反面", end=" ")

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

使用道具 举报

发表于 2020-4-4 09:00:10 | 显示全部楼层
if num % 2:
意思是如果num除以2余数为零,就是True,如果不能整除,就判断为False
可以简单理解为接收偶数,过滤奇数
如果觉得对你有帮助,麻烦设个最佳答案,谢谢~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-18 15:15:03 | 显示全部楼层

还是这个抛硬币的问题,num = random.randint(1,10)这里随机生成1-10的整数,请问这个范围是根据什么来设置的呢?是不是(1,200)会更好一点,还是(1,2)更好一点,还是跟题目无关,只要能生成随机的结果就行了呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-18 16:16:42 | 显示全部楼层
roy_lz 发表于 2020-6-18 15:15
还是这个抛硬币的问题,num = random.randint(1,10)这里随机生成1-10的整数,请问这个范围是根据什么来设 ...

这个范围没有规定,只要保证奇数和偶数的数量是相等的就可以了,所以,(1,10)和(1,200)没区别,(1,2)就特别点,倒不是说结果会有不同,而是代码可以简单些,不用判断奇偶,只用判断等于1还是等于2就行了。

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
roy_lz + 1 + 1

查看全部评分

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

使用道具 举报

发表于 2020-6-18 16:43:06 | 显示全部楼层
txxcat 发表于 2020-6-18 16:16
这个范围没有规定,只要保证奇数和偶数的数量是相等的就可以了,所以,(1,10)和(1,200)没区别,(1,2)就特 ...

多谢解答,所以我直接用result = random.choice("正面","反面")也行咯
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-18 17:17:22 | 显示全部楼层
roy_lz 发表于 2020-6-18 16:43
多谢解答,所以我直接用result = random.choice("正面","反面")也行咯

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-11 14:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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