想明晰关于对硬币模拟实验的代码含义(入门小白提问)
import randomcounts = int(input("请输入抛硬币的次数:"))
i = 0
print("开始抛硬币实验:")
while i < counts:
num = random.randint(1, 10)
if num % 2:
print("正面", end=" ")
else:
print("反面", end=" ")
i += 1
疑问:1、为什么生成伪随机数要用randint(1,10),为什么是(1,10)的范围【开始想用sample或choice】
2、num%2是什么意思?
1、为什么生成伪随机数要用randint(1,10),为什么是(1,10)的范围【开始想用sample或choice】
random 模块的randint方法,是在定义范围内随机一个整数,所以使用它
而 sample 是在可以从指定的序列中,随机的截取指定长度的片断,不作原地修改,一般用于多次抽取序列中不同的元素并返回,所以用 sample 很明显不符合这题题意
和 choice 在一个序列中随机选择一个返回,这个的确可以,要看具体情况,这里实际上可以直接 choice([ 1, 2]) 即可达到题意
如果是猜数字啥的,用 randint 就更为方便,choice 还需要提供一个序列,而且不如 randint 直接随机整数来的快
2、num%2是什么意思?
num % 2 是求余操作符,就是求 num 除以 2 的余数,Python 中数字只要不为 0 ,则都可以视为布尔类型值的 True
所以这里的 if 只有在 num 整除以 2,即 num%2 == 0 的时候才不成立,然后执行 else 的代码块,否则条件成立 都是执行 if 的代码块
randint 1到任意一个大于1的偶数都可以,不一定到10
num%2 是num除以2的余数。在判断的时候1相当于True,0相当于False
问题1:为什么生成伪随机数要用randint(1,10),为什么是(1,10)的范围【开始想用sample或choice】
这段代码表示生成一个1到10的随机数,sample和choice还得创建一个列表。不如这样直接生成随机整形来的快。
问题2:num%2是什么意思
num%2返回num除以2的余数,如果是0,就是说这是双数,也是假,输出(“正面”),如果这是单数,就是1,也就是真,输出(“反面”) 如果帮到你了,设置最佳答案可好呀{:10_297:} 陈尚涵 发表于 2020-7-25 08:43
如果帮到你了,设置最佳答案可好呀
你充钱啦~{:10_256:} 永恒的蓝色梦想 发表于 2020-7-26 16:22
你充钱啦~
嘿嘿那是,我的零花钱终于有199啦{:10_298:} 永恒的蓝色梦想 发表于 2020-7-26 16:22
你充钱啦~
哈哈哈,我的贡献终于不是-5了,不用被人嘲笑了{:10_256:}{:10_256:}{:10_256:}{:10_256:} 永恒的蓝色梦想 发表于 2020-7-26 16:22
你充钱啦~
谢谢好友送的贡献{:10_256:}{:10_256:}{:10_256:}
页:
[1]