骆驼在西部 发表于 3 天前

第八课的动动手作业

import random
counts=random.randint(1, 201)
# 接收用户输入并将数值赋值给 counts 变量 #
i=0

num=counts
print("开始抛硬币实验:")
while i < counts:
    # 生成一个随机数num #

    if num % 2:
      print('正面')
      # 打印结果 #
    else:
      print('反面')
      # 打印结果 #

    i = i + 1

完成了第八课的动动手2这段代码,但是不知道对不对,感觉还是有点问题,提交后没有看到正确的答案公布出来,

柿子饼同学 发表于 3 天前

答案应该是回复就可以出现啊, 就在题目的下面那个红色框里面

小甲鱼的二师兄 发表于 3 天前

回复后查看原帖子,就可以看到答案了。

柿子饼同学 发表于 3 天前

本帖最后由 柿子饼同学 于 2025-4-1 22:10 编辑

你的代码有问题, 首先 counts 要求的是接受用户输入, 代表抛硬币次数, 你不能用随机数
然后生成一个随机数需要在下面代码中这样写, 在我的代码中只能随机出两种数01, 其中 0 是正面 1 是反面# 导入随机模块 #
import random

# 接收用户输入并将数值赋值给 counts 变量 #
counts = int(input("请输入抛硬币次数: "))
i = 0

print("开始抛硬币实验:")
while i < counts:
    # 生成一个随机数num #
    num = random.randint(0, 2)

    if num % 2:
      # 打印结果 #
      print("正面", end=" ")
    else:
      # 打印结果 #
      print("反面", end=" ")

    i = i + 1

骆驼在西部 发表于 前天 14:50

柿子饼同学 发表于 2025-4-1 22:09
你的代码有问题, 首先 counts 要求的是接受用户输入, 代表抛硬币次数, 你不能用随机数
然后生成一个随机数 ...

答案回复了,没有看到正确的,python,太难了!

柿子饼同学 发表于 前天 17:34

骆驼在西部 发表于 2025-4-2 14:50
答案回复了,没有看到正确的,python,太难了!

别灰心, 可以配合B站上小甲鱼的对应视频学习, 还是比较通俗易懂的
【【Python教程】《零基础入门学习Python》最新版(完结撒花&#127881;)】 https://www.bilibili.com/video/BV1c4411e77t/?share_source=copy_web&vd_source=a9cc3d08b88ba606a55323168cb1deb0

FishC 发表于 前天 20:22

代码问题分析及修正方案

你的代码存在两个主要问题:


[*]变量逻辑错误:num变量在循环外被固定赋值为counts,导致所有结果都相同
[*]未接收用户输入:题目要求用input获取抛硬币次数,而你用了随机数生成次数


修正后的代码:

import random
counts = int(input("请输入抛硬币次数:"))
print("开始抛硬币实验:")

i = 0
while i < counts:
    # 每次循环生成新的随机数
    coin = random.randint(0, 1)# 0表示反面,1表示正面
    if coin == 1:
      print('正面')
    else:
      print('反面')
    i += 1


主要改进点:

[*]使用input接收用户输入次数
[*]在循环内每次生成新的随机数
[*]简化条件判断逻辑
[*]使用更规范的变量名


建议测试时先用小次数(如5次)验证,观察是否每次结果都不同。如果还有问题欢迎继续提问~

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

骆驼在西部 发表于 前天 21:03

FishC 发表于 2025-4-2 20:22
代码问题分析及修正方案

你的代码存在两个主要问题:


解释一下代码的意义,以及上句代码与下句代码之间,整段代码之间所存在的逻辑关系!!!!
页: [1]
查看完整版本: 第八课的动动手作业