鱼C论坛

 找回密码
 立即注册
查看: 10274|回复: 18

[已解决]if num % 2: 这个是啥意思

[复制链接]
发表于 2020-5-19 00:49:20 | 显示全部楼层 |阅读模式

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

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

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 += 1
别的我都懂,就这 num % 2 是属是懵了,
字面意思是当随机出来的数除以2后的余数,
然后就冒号了,接着打印正面?
咋知道他是正面的,
假设随机数是1,1/2得得余数是1,这也没个比较啊咋就print了?(萌新问号&#10067;
大大的眼睛里有着大大得疑惑


谢谢大佬们得帮助
最佳答案
2020-5-19 00:53:07
本帖最后由 Twilight6 于 2020-5-19 00:58 编辑

% 是 Python 的求余运算符   对num除以2求其余数

你要知道只要是非 0 的数字 都可看成bool类型的值True  0 就是False

这样当 if num%2: 这的num%2 != 0 条件都为True 即都会执行if里面的代码块,若 num%2 == 0 则 条件不成立,执行else的代码块
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-19 00:53:07 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Twilight6 于 2020-5-19 00:58 编辑

% 是 Python 的求余运算符   对num除以2求其余数

你要知道只要是非 0 的数字 都可看成bool类型的值True  0 就是False

这样当 if num%2: 这的num%2 != 0 条件都为True 即都会执行if里面的代码块,若 num%2 == 0 则 条件不成立,执行else的代码块
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2020-5-19 00:56:13 | 显示全部楼层
在 Python 中,数值为 0 表示假,非 0 表示真。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2020-5-19 00:58:47 | 显示全部楼层
小甲鱼 发表于 2020-5-19 00:56
在 Python 中,数值为 0 表示假,非 0 表示真。


甲鱼哥好,感觉最佳要没了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-5-19 01:51:57 | 显示全部楼层
Twilight6 发表于 2020-5-19 00:58
甲鱼哥好,感觉最佳要没了

不不不,你回复比我详细多了,赞一个!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-19 06:01:36 | 显示全部楼层
Twilight6 发表于 2020-5-19 00:53
% 是 Python 的求余运算符   对num除以2求其余数

你要知道只要是非 0 的数字 都可看成bool类型的值True  ...

哇这个点都没睡,我以为没人回就干别的去了,睡前随便看看真有大佬回,感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-19 07:18:19 | 显示全部楼层
小甲鱼 发表于 2020-5-19 01:51
不不不,你回复比我详细多了,赞一个!

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

使用道具 举报

发表于 2020-9-10 14:44:31 | 显示全部楼层
Twilight6 发表于 2020-5-19 00:53
% 是 Python 的求余运算符   对num除以2求其余数

你要知道只要是非 0 的数字 都可看成bool类型的值True  ...

感觉用余数来判断好复杂鸭,大佬请问能不能这样写呢,相较于余数的办法,我这个笨办法有啥缺陷吗?
import random

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

print("开始抛硬币实验:")
while i < counts:
    num = random.randint(1,2)
    if num == 2:
        print("正面")
    else:
        print("反面")

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

使用道具 举报

发表于 2021-6-12 12:40:02 | 显示全部楼层
if num % 2:是省略了==0吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-19 12:53:57 | 显示全部楼层
是不是可以理解为把判断“正面还是反面”的问题,变化成了判断“奇数还是偶数”的问题?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-23 09:09:37 | 显示全部楼层
Twilight6 发表于 2020-5-19 00:53
% 是 Python 的求余运算符   对num除以2求其余数

你要知道只要是非 0 的数字 都可看成bool类型的值True  ...

import random
counts=int(input("请输入与抛硬币的次数:"))
i = 0
print("开始抛硬币实验:")
while i < counts:
    m=random.choice(["正面","反面"])
    if m==("正面"):
        print("正面",end=' ')
    else:
        print("反面",end=' ')
    i = i + 1
大佬像我这样的话有什么缺陷吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-4-23 10:45:50 | 显示全部楼层
雨冷不及没有伱 发表于 2022-4-23 09:09
import random
counts=int(input("请输入与抛硬币的次数:"))
i = 0


没啥问题

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

使用道具 举报

发表于 2022-4-23 10:46:55 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-23 10:49:22 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-1 12:38:44 | 显示全部楼层
helenfalcon 发表于 2020-9-10 14:44
感觉用余数来判断好复杂鸭,大佬请问能不能这样写呢,相较于余数的办法,我这个笨办法有啥缺陷吗?

我也想问这个问题,这样写会有什么影响吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-8 22:17:16 | 显示全部楼层
helenfalcon 发表于 2020-9-10 14:44
感觉用余数来判断好复杂鸭,大佬请问能不能这样写呢,相较于余数的办法,我这个笨办法有啥缺陷吗?

有同样的疑问,蹲一个回复。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-9 16:11:03 | 显示全部楼层
可以多给点题嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

发表于 2023-7-24 17:13:15 | 显示全部楼层
helenfalcon 发表于 2020-9-10 14:44
感觉用余数来判断好复杂鸭,大佬请问能不能这样写呢,相较于余数的办法,我这个笨办法有啥缺陷吗?

我也想问这个问题
为什么随机数的取值范围需要1-10呢?
其实1和2,随机取值就可以了,再来区分正面或反面。
(或者再去判断取出的随机数除以2的余数情况,再来区分正面或反面,判断余数感觉也是可有可无的步骤,有点复杂了)


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

使用道具 举报

发表于 2024-12-29 18:13:11 | 显示全部楼层
# 导入随机模块 #
import random

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

i = 0

print("开始抛硬币实验:")
while i < counts:
    # 生成一个随机数num #
    num = random.randint(1,200)
    if num % 2 == 0:
        print("正面 ")
        # 打印结果#
    else:
        print("反面")
        # 打印结果 #

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-23 19:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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