钮钴禄闻。 发表于 2020-4-3 15:23:51

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

这是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

qiuyouzhi 发表于 2020-4-3 15:26:26

就是判断这个数字是不是奇数。
因为0是假,如果num/2能整除,它一定是偶数(余数就为0)
而不为0就一定是奇数(余数为1)

zltzlt 发表于 2020-4-3 17:43:22

是 True/False 的意思。如果 num % 2 的结果不为 0 则 num % 2 为 True,否则为 False

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

老八秘制 发表于 2020-4-4 09:00:10

if num % 2:
意思是如果num除以2余数为零,就是True,如果不能整除,就判断为False
可以简单理解为接收偶数,过滤奇数
如果觉得对你有帮助,麻烦设个最佳答案,谢谢~

roy_lz 发表于 2020-6-18 15:15:03

txxcat 发表于 2020-4-3 22:12


还是这个抛硬币的问题,num = random.randint(1,10)这里随机生成1-10的整数,请问这个范围是根据什么来设置的呢?是不是(1,200)会更好一点,还是(1,2)更好一点,还是跟题目无关,只要能生成随机的结果就行了呢?

txxcat 发表于 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就行了。

roy_lz 发表于 2020-6-18 16:43:06

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

多谢解答,所以我直接用result = random.choice("正面","反面")也行咯{:5_109:}

txxcat 发表于 2020-6-18 17:17:22

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

{:10_275:}
页: [1]
查看完整版本: 新手一枚,不是很理解作业里的答案,求解