成成是我 发表于 2022-11-24 08:11:21

Python代码求助 抛硬币实验

本帖最后由 成成是我 于 2022-11-24 08:18 编辑

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 =i + 1



为什么num随机返回值是1-10,num % 2是啥意思??

tommyyu 发表于 2022-11-24 08:21:54

num 除以 2 的余数。

在大部分编程语言中,0表示假,其他值都表示真。而 num 除以 2 的余数只能是 0 或 1,所以 if num % 2: 就是 if num % 2 == 1:

jackz007 发表于 2022-11-24 09:23:05

      楼主,听懂了不要忘记给帮助你的人 "最佳答案"

成成是我 发表于 2022-11-24 10:00:58

tommyyu 发表于 2022-11-24 08:21
num 除以 2 的余数。

在大部分编程语言中,0表示假,其他值都表示真。而 num 除以 2 的余数只能是 0 或...

好的大神,那num = random.randint(1, 10)是啥意思呢?为什么是1-10,不是1-11

tommyyu 发表于 2022-11-24 10:03:08

成成是我 发表于 2022-11-24 10:00
好的大神,那num = random.randint(1, 10)是啥意思呢?为什么是1-10,不是1-11

这个地方其实可以写random.randint(1, 2),这里其实只要保证在a~b中奇数和偶数的个数相等就可以了

成成是我 发表于 2022-11-24 11:25:08

tommyyu 发表于 2022-11-24 10:03
这个地方其实可以写random.randint(1, 2),这里其实只要保证在a~b中奇数和偶数的个数相等就可以了

好的,知道啦谢谢{:5_108:}

文houa 发表于 2022-11-24 13:16:37

有收获

成成是我 发表于 2022-11-29 08:01:44

如果抛硬币的次数小于 100,则打印每次的结果,否则不打印
统计最终正面和反面的次数

import random

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

if counts > 100:
    ignore = True                  # 利用 ignore 变量来判断是否打印每次的结果
else:
    ignore = False

heads = 0               # 统计正面的次数
tails = 0                  # 统计反面的次数

i = 0
print("开始抛硬币实验...")
while i < counts:
    num = random.randint(1, 10)

    if num % 2:
      heads += 1
      if not ignore:
            print("正面", end=" ")
    else:
      tails += 1
      if not ignore:
            print("反面", end=" ")

    i += 1
print("")
print("一共模拟了",counts,"次抛硬币,结果如下:")
print("正面:",heads,"次", sep="")
print("反面:",tails,"次", sep="")

網絡奇人怪小四 发表于 2022-11-29 20:19:51

本帖最后由 網絡奇人怪小四 于 2022-11-29 20:21 编辑

我剛剛也做了這個課後功課
我的做法變量只有coin_answer=["正面","反面"]2種結果
while i<我設定的int(counts)時
執行random.choice(coin_answer)
代碼如下:

import random # 导入随机模块

coin_answer = ["正面","反面"] #設定拋硬幣只有正反2種結果

counts = input("請輸入拋硬幣次數:")# 接收用户输入并将数值赋值给 counts 变量
i = 0

print("开始抛硬币实验:")

while i < int(counts):
    random.choice(coin_answer)# 生成一个随机数num #

    print(random.choice(coin_answer),end=' ') #生成隨機正反面且結果不換行

    i = i + 1

這樣我發覺可以像題目一樣出到結果, 哈~

chang1jing 发表于 2022-12-14 13:45:11

網絡奇人怪小四 发表于 2022-11-29 20:19
我剛剛也做了這個課後功課
我的做法變量只有coin_answer=["正面","反面"]2種結果
while i

好聪明

網絡奇人怪小四 发表于 2022-12-14 13:54:31

chang1jing 发表于 2022-12-14 13:45
好聪明

謝謝誇獎
页: [1]
查看完整版本: Python代码求助 抛硬币实验