鱼C论坛

 找回密码
 立即注册
查看: 3284|回复: 10

[已解决]Python代码求助 抛硬币实验

[复制链接]
发表于 2022-11-24 08:11:21 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 成成是我 于 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是啥意思??
最佳答案
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中奇数和偶数的个数相等就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-24 08:21:54 | 显示全部楼层
num 除以 2 的余数。

在大部分编程语言中,0表示假,其他值都表示真。而 num 除以 2 的余数只能是 0 或 1,所以 if num % 2: 就是 if num % 2 == 1:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-24 09:23:05 | 显示全部楼层
        楼主,听懂了不要忘记给帮助你的人 "最佳答案"
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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中奇数和偶数的个数相等就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

使用道具 举报

发表于 2022-11-24 13:16:37 | 显示全部楼层
有收获
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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="")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-29 20:19:51 | 显示全部楼层
本帖最后由 網絡奇人怪小四 于 2022-11-29 20:21 编辑

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

  1. import random # 导入随机模块

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

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

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

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

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

  9.     i = i + 1
复制代码


這樣我發覺可以像題目一樣出到結果, 哈~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

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

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

使用道具 举报

发表于 2022-12-14 13:54:31 | 显示全部楼层

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-21 19:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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