用random.randint()函数模拟掷硬币
友友们,请问为什么 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
if num % 2:就相当于if num % 2不等于0 在很多编程语言中都有一个规则,如果整形被作为逻辑判断条件时,0等价于False,非0等价于True
python中,如果字符串被作为逻辑判断条件时,空字符串""等价于False,非空字符串等价于True
列表,字典等都同理~ lightninng 发表于 2021-12-13 16:56
在很多编程语言中都有一个规则,如果整形被作为逻辑判断条件时,0等价于False,非0等价于True
python中, ...
谢谢您的回答,但有一点不理解:
请问整形是什么呀?
我百度了,但没找到。 阿漾 发表于 2021-12-13 18:26
谢谢您的回答,但有一点不理解:
请问整形是什么呀?
好家伙,是:整型{:10_257:},就是1,2,3,4,5.........自然数{:5_94:} 做最好的自己520 发表于 2021-12-13 19:12
好家伙,是:整型,就是1,2,3,4,5.........自然数
哈哈哈,好哒。
可是还是不太确定我对——“如果整形被作为逻辑判断条件的理解”是不是对的,麻烦您帮我看看。
谢谢!
在本题中,整型被作为逻辑判断条件,意思是num除以2的余数——这个整数,我就记为a吧,这个a被用来做逻辑判断。此时这个逻辑判断他是没有写明的,那是不是就是默认为同0作比较,也就是您说的这个规则。
阿漾 发表于 2021-12-13 19:31
哈哈哈,好哒。
可是还是不太确定我对——“如果整形被作为逻辑判断条件的理解”是不是对的,麻烦您帮 ...
若这个逻辑判断(num % 2)没有写明,那就直接报错了
这里写了:num = random.randint(1, 10)
if num % 2:#不能被2整除,执行
print("正面", end=" ")
else: #能被2整除 ,执行
print("反面", end=" ")
看看是不是这样 做最好的自己520 发表于 2021-12-13 20:25
若这个逻辑判断(num % 2)没有写明,那就直接报错了
这里写了:num = random.randint(1, 10)
是我没有说清楚,我想问的是:您说的这个规则是指省略了 “if num % 2 =! 0:” 中的 “=! 0” 吗? 阿漾 发表于 2021-12-13 21:54
是我没有说清楚,我想问的是:您说的这个规则是指省略了 “if num % 2 =! 0:” 中的 “=! 0” 吗?
if 后面默认是逻辑判断语句,所以你可以将整型变量,字符串变量,甚至集合,列表,字典放在if后面作为判断条件,如果是整型就是判断是否等于0,字符串判断是否是空字符串,后面同理~~~
抱歉,,确实是字打错了~~ lightninng 发表于 2021-12-13 22:59
if 后面默认是逻辑判断语句,所以你可以将整型变量,字符串变量,甚至集合,列表,字典放在if后面作为判 ...
啊,好的,现在懂了,谢谢您呀 做最好的自己520 发表于 2021-12-13 20:25
若这个逻辑判断(num % 2)没有写明,那就直接报错了
这里写了:num = random.randint(1, 10)
我懂啦,谢谢您呀 阿漾 发表于 2021-12-13 21:54
是我没有说清楚,我想问的是:您说的这个规则是指省略了 “if num % 2 =! 0:” 中的 “=! 0” 吗?
抱歉,你说口中的那个“规则”不是我说的{:10_262:}
2楼的意思是说,几乎所有编程语言:逻辑判断(表达式) 返回的结果: 0 表示假,1表示真。py对应的 0 == False(假) , 1 == True(真) 同理
如果是这方面知识想了解请观看:https://www.bilibili.com/video/BV15P4y1W7NX?spm_id_from=333.999.0.0
与 https://www.bilibili.com/video/BV1BK411V7SW?spm_id_from=333.999.0.0
若有误还请指正{:10_275:} 阿漾 发表于 2021-12-13 18:26
谢谢您的回答,但有一点不理解:
请问整形是什么呀?
整型就是指整数 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
求教各位前辈,这里面为什么要用randint(1,10)呢?用randint(1,2)应该也可以实现吧 nettkd 发表于 2021-12-14 10:17
import random
counts = int(input("请输入抛硬币的次数:"))
有很多方法,他选择了其中这么一种。 做最好的自己520 发表于 2021-12-13 23:29
抱歉,你说口中的那个“规则”不是我说的
2楼的意思是说,几乎所有编程语言:逻辑判断(表达式 ...
哦哦,原来如此,现在理解更加深刻了,谢谢您。 阿漾 发表于 2021-12-16 21:31
有很多方法,他选择了其中这么一种。
嗯嗯,我是说既然只有正面和反面两种结果 ,为什么要用(1,10)?(1,2)不是更合理吗 nettkd 发表于 2021-12-17 07:51
嗯嗯,我是说既然只有正面和反面两种结果 ,为什么要用(1,10)?(1,2)不是更合理吗
是没错,但是你想想
假设:你想测试到底喜欢吃辣的人比较多,还是不喜欢吃辣的人比较多(虽然知道答案必然只有喜欢和不喜欢两种),你会只想测试两个人?还是十个人?还是一千个人为准呢? 傻眼貓咪 发表于 2021-12-17 13:58
是没错,但是你想想
假设:你想测试到底喜欢吃辣的人比较多,还是不喜欢吃辣的人比较多(虽然知道答案必 ...
这个……我感觉脑子不够用了。控制硬币次数的不是counts吗?num只是表示正面和反面两种结果吧?是不是我理解错了啊 nettkd 发表于 2021-12-17 15:39
这个……我感觉脑子不够用了。控制硬币次数的不是counts吗?num只是表示正面和反面两种结果吧?是不是我 ...
没错,但是次数和取样数不同{:10_279:}
你可以重复一直做同样的实验多次,每次取样1000人为实验对象,当然无论是次数或取样数都会影响结果
页:
[1]