382678922 发表于 2023-4-10 22:36:45

课后作业008 抛筛子代码 求解 小白快要学哭了。。。

请大神对以下代码做一个详细解读。
另外请教大神,作为一名小白,怎么去学习如此繁多的逻辑和代码!是否有方法或者某种逻辑?如何巩固基础?谢谢大神!
import random

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

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

    # 如果随机数可以被2整除,则代表正面,否则代表反面
    # num是随机的,所以正面和反面的概率也是随机的
    if num % 2:
      print("正面", end=" ")
    else:
      print("反面", end=" ")

    i += 1

歌者文明清理员 发表于 2023-4-10 22:38:48

这段代码是一个模拟抛硬币实验,目的是为了演示随机事件的概率分布。现在来逐行解读这段代码:

import random
这行代码是导入 Python 自带的 random 库,其中包含生成随机数的函数。

counts = int(input("请输入抛硬币的次数:"))
这行代码要求用户输入抛硬币的次数,并将输入值转换为整型并赋值给 counts 变量。

i = 0
设定一个计数器变量,初始值为0。

print("开始抛硬币实验:")
输出一条提示信息,表示正式开始抛硬币实验。

while i < counts:
这是一个while循环语句,当i小于counts时执行以下代码块。

num = random.randint(1, 10)
调用 random 库中的randint函数,生成一个1到10之间的随机整数,并将其赋值给 num 变量。

if num % 2:
判断num是否为偶数,如果不是,执行以下代码块。

print("正面", end=" ")
如果num不是偶数,即为奇数,表示这次抛硬币结果为“反面”,因此输出“反面”二字,并在结尾使用end=" "是为了让结果不换行而保持在同一行。

else:
如果num是偶数,即为偶数,表示这次抛硬币结果为“正面”,因此输出“正面”二字,并在结尾使用end=" "是为了让结果不换行而保持在同一行。

i += 1
每执行一次循环,计数器变量 i 就会增加1。如果 i 达到 count 的值,while 循环就会停止,整个程序也就结束了。

关于如何学习编程,建议先从简单入手,掌握基础语法和常见的数据类型,然后通过练习、观察和模仿来逐渐深入理解和掌握编程逻辑和技巧。同时,多阅读相关的编程书籍和网络资源,参加编程社区和课程等也都是不错的选择。巩固基础最好的方法就是多写代码,尝试将知识应用到实际问题中去,开发自己的项目,加深对编程的理解和熟练度。

Threebody1 发表于 2023-4-10 22:41:13

打错字了吧,是骰(tou2)子不是筛子

isdkz 发表于 2023-4-10 22:42:48

代码解读:

1、导入 random 模块:这个模块提供了生成随机数的功能。

import random

2、获取用户输入的抛硬币次数,并将输入的字符串转换为整数。

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

3、初始化一个计数器 i,它将记录已经抛掷的硬币次数。

i = 0

4、输出一个提示信息,表示开始抛硬币实验。

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

5、使用 while 循环,当计数器 i 小于用户输入的次数时,执行循环。

while i < counts:

6、在循环内,生成一个 1 到 10 的随机整数(包含 1 和 10),并将其赋值给变量 num。

    num = random.randint(1, 10)

7、判断随机数 num 是否能被 2 整除。如果可以整除,输出“正面”,否则输出“反面”。这里的 if 语句实际上模拟了硬币正面和反面的概率。
    if num % 2:
      print("正面", end=" ")
    else:
      print("反面", end=" ")

8、更新计数器 i 的值,使其增加 1。
    i += 1

作为编程小白,学习编程的过程可能会让你觉得很困难,但不用担心,有以下一些建议供你参考:


[*]学习基础知识:确保你掌握了基本的编程知识,如变量、数据类型、条件语句、循环、函数等。

[*]实践项目:通过完成一些小项目来巩固你的编程技能。这会让你更加熟悉编程,并帮助你掌握新知识。

[*]多看别人的代码:阅读和理解别人的代码可以帮助你学习编程的最佳实践,以及如何解决实际问题。

[*]分阶段学习:将学习过程分为多个阶段,并逐步深入,从而确保你能够充分理解和消化所学内容。

[*]与他人交流:加入编程社区或讨论组,与其他学习者或专业人士交流,以便提高你的技能和解决问题。

[*]不断挑战自己:不断地学习新技术和框架,并尝试解决更复杂的问题,这将帮助你不断进步。

[*]保持耐心:学习编程是一个漫长的过程,需要时间和耐心。不要因为一开始遇到困难就放弃,坚持不懈地学习,你会发现自己不断地进步。

[*]制定学习计划:为自己制定一个合理的学习计划,确保你能够系统地学习并掌握编程知识。

[*]学会利用资源:充分利用互联网上的资源,如教程、文档、博客、论坛等。这些资源能帮助你更好地理解和学习编程。

[*]反思与总结:经常回顾和总结自己在学习过程中遇到的问题和解决方法,这有助于巩固你的知识和提高编程能力。


最后,要记住编程是一项实践性很强的技能,只有通过大量的练习和实践才能不断提高。在学习过程中,保持积极的心态和对编程的热情非常重要。祝你学习顺利!

isdkz 发表于 2023-4-10 22:45:01

歌者文明清理员 发表于 2023-4-10 22:38
这段代码是一个模拟抛硬币实验,目的是为了演示随机事件的概率分布。现在来逐行解读这段代码:

import r ...

早知道不整理格式了,辛辛苦苦整理格式还被你抢先了{:10_277:},到时候得写一个自己整理格式的程序才行

歌者文明清理员 发表于 2023-4-10 22:53:11

isdkz 发表于 2023-4-10 22:45
早知道不整理格式了,辛辛苦苦整理格式还被你抢先了,到时候得写一个自己整理格式的程序才行

我写了一半然后把程序删了(不擅长算法(

isdkz 发表于 2023-4-10 22:55:03

歌者文明清理员 发表于 2023-4-10 22:53
我写了一半然后把程序删了(不擅长算法(

有没有想过写自动回复的{:10_256:}

歌者文明清理员 发表于 2023-4-10 22:56:15

isdkz 发表于 2023-4-10 22:55
有没有想过写自动回复的

我之前写了个自动爬取 chat.aidutu.cn(镜像站)的,好像被识别出来,从此那个网站要验证微信公众号的代码,从此不在那提问了

哦对了那个binjie 换网站了 http://chat1.aichatos.com/

歌者文明清理员 发表于 2023-4-10 22:57:33

isdkz 发表于 2023-4-10 22:55
有没有想过写自动回复的

自动回复不二如是的每日英语?这个好

isdkz 发表于 2023-4-10 22:58:34

歌者文明清理员 发表于 2023-4-10 22:57
自动回复不二如是的每日英语?这个好

首楼有奖励?

歌者文明清理员 发表于 2023-4-10 22:59:01

isdkz 发表于 2023-4-10 22:58
首楼有奖励?

那当然

isdkz 发表于 2023-4-10 23:00:53

歌者文明清理员 发表于 2023-4-10 22:59
那当然

我不差鱼币,都没处花了{:10_256:}

歌者文明清理员 发表于 2023-4-10 23:02:12

isdkz 发表于 2023-4-10 23:00
我不差鱼币,都没处花了

鱼币有啥?只要我不看小甲鱼的教程,鱼币就是悬赏和回帖奖励用的

但荣誉、贡献嘛……升级用!vip体验不到升级的乐趣

isdkz 发表于 2023-4-10 23:06:39

歌者文明清理员 发表于 2023-4-10 23:02
鱼币有啥?只要我不看小甲鱼的教程,鱼币就是悬赏和回帖奖励用的

但荣誉、贡献嘛……升级用!vip体验 ...

确实体会不到,要是能走两个体系就好了{:10_277:}

歌者文明清理员 发表于 2023-4-10 23:09:41

isdkz 发表于 2023-4-10 23:06
确实体会不到,要是能走两个体系就好了

开小号{:10_279:}

382678922 发表于 2023-4-11 11:54:12

isdkz 发表于 2023-4-10 22:42
代码解读:

1、导入 random 模块:这个模块提供了生成随机数的功能。


感谢大神的耐心回复,请问有没有推荐的新手训练网站,因为目前基础知识还不熟练,经常学了后面,忘了前面,或者是突然忘记代码中的逻辑问题。这让我有点懵,感觉茫茫大海之缥缈。
页: [1]
查看完整版本: 课后作业008 抛筛子代码 求解 小白快要学哭了。。。