2468246301 发表于 2020-5-19 00:49:20

if num % 2: 这个是啥意思

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了?(萌新问号❓
大大的眼睛里有着大大得疑惑


谢谢大佬们得帮助

Twilight6 发表于 2020-5-19 00:53:07

本帖最后由 Twilight6 于 2020-5-19 00:58 编辑

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

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

这样当 if num%2: 这的num%2 != 0 条件都为True 即都会执行if里面的代码块,若 num%2 == 0 则 条件不成立,执行else的代码块

小甲鱼 发表于 2020-5-19 00:56:13

在 Python 中,数值为 0 表示假,非 0 表示真。

Twilight6 发表于 2020-5-19 00:58:47

小甲鱼 发表于 2020-5-19 00:56
在 Python 中,数值为 0 表示假,非 0 表示真。

{:10_254:}甲鱼哥好,感觉最佳要没了{:10_266:}

小甲鱼 发表于 2020-5-19 01:51:57

Twilight6 发表于 2020-5-19 00:58
甲鱼哥好,感觉最佳要没了

不不不,你回复比我详细多了,赞一个!

2468246301 发表于 2020-5-19 06:01:36

Twilight6 发表于 2020-5-19 00:53
% 是 Python 的求余运算符   对num除以2求其余数

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

哇这个点都没睡,我以为没人回就干别的去了,睡前随便看看真有大佬回,感谢

Twilight6 发表于 2020-5-19 07:18:19

小甲鱼 发表于 2020-5-19 01:51
不不不,你回复比我详细多了,赞一个!

{:10_297:}

helenfalcon 发表于 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

王芋头 发表于 2021-6-12 12:40:02

if num % 2:是省略了==0吗?

Trotwood 发表于 2021-11-19 12:53:57

是不是可以理解为把判断“正面还是反面”的问题,变化成了判断“奇数还是偶数”的问题?

雨冷不及没有伱 发表于 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
大佬像我这样的话有什么缺陷吗{:10_254:}

Twilight6 发表于 2022-4-23 10:45:50

雨冷不及没有伱 发表于 2022-4-23 09:09
import random
counts=int(input("请输入与抛硬币的次数:"))
i = 0



没啥问题

雨冷不及没有伱 发表于 2022-4-23 10:46:55

Twilight6 发表于 2022-4-23 10:45
没啥问题

谢谢

Twilight6 发表于 2022-4-23 10:49:22

雨冷不及没有伱 发表于 2022-4-23 10:46
谢谢


没事~

deerinaforest 发表于 2022-5-1 12:38:44

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

我也想问这个问题,这样写会有什么影响吗

shinerl 发表于 2022-10-8 22:17:16

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

有同样的疑问,蹲一个回复。

15214170243 发表于 2022-11-9 16:11:03

{:10_266:}可以多给点题嘛

小猫猫的大梦想 发表于 2023-7-24 17:13:15

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

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


页: [1]
查看完整版本: if num % 2: 这个是啥意思