鱼C论坛

 找回密码
 立即注册
查看: 2364|回复: 19

[已解决]用random.randint()函数模拟掷硬币

[复制链接]
发表于 2021-12-13 15:00:26 | 显示全部楼层 |阅读模式

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

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

x
友友们,请问为什么 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
最佳答案
2021-12-13 22:59:39
阿漾 发表于 2021-12-13 21:54
是我没有说清楚,我想问的是:您说的这个规则是指省略了 “if num % 2 =! 0:” 中的 “=! 0” 吗?

if 后面默认是逻辑判断语句,所以你可以将整型变量,字符串变量,甚至集合,列表,字典放在if后面作为判断条件,如果是整型就是判断是否等于0,字符串判断是否是空字符串,后面同理~~~
抱歉,,确实是字打错了~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-13 15:09:44 From FishC Mobile | 显示全部楼层
if num % 2:就相当于if num % 2不等于0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-13 16:56:42 | 显示全部楼层
在很多编程语言中都有一个规则,如果整形被作为逻辑判断条件时,0等价于False,非0等价于True
python中,如果字符串被作为逻辑判断条件时,空字符串""等价于False,非空字符串等价于True
列表,字典等都同理~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-13 18:26:44 | 显示全部楼层
lightninng 发表于 2021-12-13 16:56
在很多编程语言中都有一个规则,如果整形被作为逻辑判断条件时,0等价于False,非0等价于True
python中, ...

谢谢您的回答,但有一点不理解:
请问整形是什么呀?

我百度了,但没找到。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-13 19:12:56 | 显示全部楼层
阿漾 发表于 2021-12-13 18:26
谢谢您的回答,但有一点不理解:
请问整形是什么呀?

好家伙,是:整型,就是1,2,3,4,5.........自然数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-13 19:31:09 | 显示全部楼层
做最好的自己520 发表于 2021-12-13 19:12
好家伙,是:整型,就是1,2,3,4,5.........自然数

哈哈哈,好哒。

可是还是不太确定我对——“如果整形被作为逻辑判断条件的理解”是不是对的,麻烦您帮我看看。
谢谢!

在本题中,整型被作为逻辑判断条件,意思是num除以2的余数——这个整数,我就记为a吧,这个a被用来做逻辑判断。此时这个逻辑判断他是没有写明的,那是不是就是默认为同0作比较,也就是您说的这个规则。

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

使用道具 举报

发表于 2021-12-13 20:25:56 | 显示全部楼层
阿漾 发表于 2021-12-13 19:31
哈哈哈,好哒。

可是还是不太确定我对——“如果整形被作为逻辑判断条件的理解”是不是对的,麻烦您帮 ...

若这个逻辑判断(num % 2)没有写明,那就直接报错了
这里写了:num = random.randint(1, 10)
  if num % 2:  #不能被2整除,执行
        print("正面", end=" ")
    else:   #能被2整除 ,执行
        print("反面", end=" ")
看看是不是这样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-13 21:54:43 | 显示全部楼层
做最好的自己520 发表于 2021-12-13 20:25
若这个逻辑判断(num % 2)没有写明,那就直接报错了
这里写了:num = random.randint(1, 10)

是我没有说清楚,我想问的是:您说的这个规则是指省略了 “if num % 2 =! 0:” 中的 “=! 0” 吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-13 22:59:39 | 显示全部楼层    本楼为最佳答案   
阿漾 发表于 2021-12-13 21:54
是我没有说清楚,我想问的是:您说的这个规则是指省略了 “if num % 2 =! 0:” 中的 “=! 0” 吗?

if 后面默认是逻辑判断语句,所以你可以将整型变量,字符串变量,甚至集合,列表,字典放在if后面作为判断条件,如果是整型就是判断是否等于0,字符串判断是否是空字符串,后面同理~~~
抱歉,,确实是字打错了~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-13 23:17:02 | 显示全部楼层
lightninng 发表于 2021-12-13 22:59
if 后面默认是逻辑判断语句,所以你可以将整型变量,字符串变量,甚至集合,列表,字典放在if后面作为判 ...

啊,好的,现在懂了,谢谢您呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-13 23:17:33 | 显示全部楼层
做最好的自己520 发表于 2021-12-13 20:25
若这个逻辑判断(num % 2)没有写明,那就直接报错了
这里写了:num = random.randint(1, 10)

我懂啦,谢谢您呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-13 23:29:39 | 显示全部楼层
阿漾 发表于 2021-12-13 21:54
是我没有说清楚,我想问的是:您说的这个规则是指省略了 “if num % 2 =! 0:” 中的 “=! 0” 吗?

抱歉,你说口中的那个“规则”不是我说的
2楼的意思是说,几乎所有编程语言:逻辑判断(表达式) 返回的结果: 0 表示假,1表示真。py对应的 0 == False(假) , 1 == True(真) 同理

如果是这方面知识想了解请观看:https://www.bilibili.com/video/B ... id_from=333.999.0.0
https://www.bilibili.com/video/B ... id_from=333.999.0.0

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

使用道具 举报

发表于 2021-12-14 10:14:47 | 显示全部楼层
阿漾 发表于 2021-12-13 18:26
谢谢您的回答,但有一点不理解:
请问整形是什么呀?

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

使用道具 举报

发表于 2021-12-14 10:17:56 | 显示全部楼层
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)应该也可以实现吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-16 21:31:32 | 显示全部楼层
nettkd 发表于 2021-12-14 10:17
import random

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

有很多方法,他选择了其中这么一种。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-16 21:32:54 | 显示全部楼层
做最好的自己520 发表于 2021-12-13 23:29
抱歉,你说口中的那个“规则”不是我说的
2楼的意思是说,几乎所有编程语言:逻辑判断(表达式 ...

哦哦,原来如此,现在理解更加深刻了,谢谢您。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-17 07:51:52 | 显示全部楼层
阿漾 发表于 2021-12-16 21:31
有很多方法,他选择了其中这么一种。

嗯嗯,我是说既然只有正面和反面两种结果 ,为什么要用(1,10)?(1,2)不是更合理吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-17 13:58:57 From FishC Mobile | 显示全部楼层
nettkd 发表于 2021-12-17 07:51
嗯嗯,我是说既然只有正面和反面两种结果 ,为什么要用(1,10)?(1,2)不是更合理吗

是没错,但是你想想
假设:你想测试到底喜欢吃辣的人比较多,还是不喜欢吃辣的人比较多(虽然知道答案必然只有喜欢和不喜欢两种),你会只想测试两个人?还是十个人?还是一千个人为准呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-17 15:39:56 | 显示全部楼层
傻眼貓咪 发表于 2021-12-17 13:58
是没错,但是你想想
假设:你想测试到底喜欢吃辣的人比较多,还是不喜欢吃辣的人比较多(虽然知道答案必 ...

这个……我感觉脑子不够用了。控制硬币次数的不是counts吗?num只是表示正面和反面两种结果吧?是不是我理解错了啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-17 16:02:08 From FishC Mobile | 显示全部楼层
nettkd 发表于 2021-12-17 15:39
这个……我感觉脑子不够用了。控制硬币次数的不是counts吗?num只是表示正面和反面两种结果吧?是不是我 ...

没错,但是次数和取样数不同

你可以重复一直做同样的实验多次,每次取样1000人为实验对象,当然无论是次数或取样数都会影响结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 15:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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