内容正文:
条件循环显身手——Python中的while与随机数应用
WPS, A CLICK TO UNLIMITED POSSIBILITIES
汇报人:刘老师
CONTENTS
04
思维拓展——看见代码中的世界
03
实战演练——智能小助手开发
02
随机魔法——random模块探秘
01
初识循环——生活中的重复智慧
05
代码艺术家
初识循环——生活中的重复智慧
PART 01
自动售货机的运营秘密
同学们,在我们的生活中,自动售货机随处可见。当我们想要购买一瓶饮料时,会往售货机里投币。售货机有一个有趣的特点,它会持续接收我们投的硬币,直到我们投入的金额足够购买我们想要的商品为止。
生活中的自动售货机
1
这和我们今天要学习的while循环逻辑很相似。while循环的核心逻辑就是当设定的条件成立时,就会重复执行一段代码。就像自动售货机,“投入的金额不足”就是条件,“接收投币”就是要重复执行的内容,直到条件不成立(金额足够)才停止。
自动售货机与while循环的关联
2
while循环解剖实验室
接着是条件判断,这一步决定了循环是否继续执行。就像公交卡每次刷卡时,系统会检查余额是否足够支付本次车费。在代码里,“while balance >= 2:” 就是条件判断部分,只有当余额大于等于2时,才会继续执行后续操作。
while循环四要素之条件判断
首先是初始化,这就好比我们坐公交前要先给公交卡充值一定金额。在代码中,我们要先给变量赋初始值。例如在公交卡余额检测代码中,我们会先定义一个变量表示公交卡的初始余额,如“balance = 10” ,这就是初始化操作。
while循环四要素之初始化
while循环解剖实验室
循环体是在条件成立时反复执行的部分。对于公交卡来说,每次刷卡扣除车费就是循环体的操作。在代码中,“balance -= 2” 就是循环体,它会不断从余额中扣除2元。
while循环四要素之循环体
6
while循环解剖实验室
最后是迭代更新,它让变量的值不断变化,使循环有可能结束。公交卡余额在每次刷卡后减少,就是一种迭代更新。在代码里,“balance -= 2” 不仅是循环体的操作,也起到了迭代更新变量的作用,让余额不断减少,直到条件不成立。
while循环四要素之迭代更新
避坑指南:循环终结者
同学们,想象一下,如果我们设置微波炉加热时间时,设置了一个永远无法达到的结束条件,会发生什么呢?比如设定微波炉一直加热,直到食物温度达到一个不可能实现的数值,这就形成了死循环。微波炉会一直工作,不会停止,这显然不是我们想要的。
在编程中,break语句就像是微波炉的“紧急停止”按钮。当满足某个特定条件时,使用break语句可以立即跳出当前循环。例如在一个循环中,我们希望当某个变量达到特定值时就结束循环,就可以使用break语句。
微波炉加热的死循环案例
break语句的作用
避坑指南:循环终结者
而continue语句则有所不同,它好比是微波炉加热过程中的“跳过当前步骤”按钮。当执行到continue语句时,它会跳过本次循环中continue后面的代码,直接回到循环开头进行下一次条件判断。
continue语句的作用
01
从上面的例子可以看出,迭代条件非常重要。就像微波炉需要正确设置加热时间一样,在循环中,我们必须确保变量有合理的迭代更新,否则就容易出现死循环,导致程序无法正常运行。
迭代条件的重要性
02
9
随机魔法——random模块探秘
PART 02
超市抽奖机背后的技术
商场的大转盘抽奖大家都不陌生。大转盘转动停止后指针指向的区域决定奖品,这和计算机生成随机数原理相似。大转盘每一格都有被选中的可能性,计算机通过算法模拟这种不确定性来生成随机数。
在超市抽奖活动中,我们常常好奇幸运号码是如何产生的。其实,在Python里,使用random.randint(1,100)就能轻松生成1到100之间的随机整数作为幸运数字。比如抽奖活动中,这个函数就可以决定谁是幸运儿。
商场大转盘实物展示随机数生成原理
揭秘random.randint(1,100)生成幸运数字
11
概率控制大师班
我们来设计一个“30%概率获得再来一瓶”的饮料瓶盖程序。首先要明确,我们需要利用random生成随机数,然后通过比较运算符来判断是否满足30%的中奖概率。
“30%概率获得再来一瓶”的程序设计思路
在程序中,使用random生成一个0到1之间的随机浮点数,然后通过比较运算符判断这个随机数是否小于等于0.3。如果小于等于0.3,就表示中奖“再来一瓶”,这就是它们配合使用实现概率控制的过程。
random与比较运算符的巧妙配合
随机数的可视化魔法
turtle库绘制随机星空图案
利用turtle库,我们可以绘制出美丽的随机星空图案。turtle库提供了丰富的绘图函数,结合random生成随机的坐标和颜色,就能让星星在画布上随机分布并呈现不同色彩。
在绘制星空图案时,random不仅能决定星星的位置,还能控制星星的大小、亮度等。通过不断调整random生成的随机值,就能创造出千变万化的星空,极大地增加了学习的趣味性。
实战演练——智能小助手开发
PART 03
游戏规则介绍
同学们,我们来玩一个有趣的猜价格游戏。程序会利用random随机函数生成一个商品的价格,这个价格是在一定范围内的整数。然后大家来猜这个价格是多少。在猜的过程中,我们会加入提示语优化功能,比如当你猜的价格比实际价格高时,会提示“猜高啦,再想想”;当你猜的价格比实际价格低时,会提示“猜低啦,加油”。同时,我们还会统计你尝试的次数,看看你用了几次才猜对。
猜价格大作战
猜价格大作战
在这个游戏中,while语句发挥着重要作用。它的一般格式是“while 条件表达式:条件为真执行循环体语句块”。这里的条件表达式就是判断你猜的价格是否正确,如果不正确就会一直执行循环体。在循环体里,我们会根据你猜的价格和实际价格的比较结果给出相应提示,并且增加尝试次数的计数。直到你猜对了,条件不满足了,才会跳出循环。
while语句的运用
16
猜价格大作战
random函数生成价格
我们使用random随机函数来生成商品的价格。比如,我们设定价格范围在1到100之间,就可以用“random.randint(1, 100)”来生成这个随机价格。这样每次运行程序,商品的价格都是不一样的,增加了游戏的趣味性。大家可以在自己的程序中尝试调整这个价格范围,看看游戏体验有什么不同。
课堂计时器设计
利用while语句来实现倒计时功能。我们设定一个初始的时间值,比如60秒。while语句的条件表达式就是判断剩余时间是否大于0。只要剩余时间大于0,就会执行循环体。在循环体里,我们会更新剩余时间的值,并且通过一些格式化操作,实现“剩余XX秒”这样的动态显示效果。当剩余时间为0时,条件不满足,循环结束,倒计时也就完成了。
在设计课堂计时器时,我们需要引入time模块。time模块提供了各种与时间相关的函数和功能。通过它,我们可以获取当前时间、进行时间的计算和格式化等操作。在我们的倒计时提醒程序中,time模块将帮助我们实现精确的时间计算和动态显示。
while循环实现倒计时
time模块的引入
18
课堂计时器设计
培养工程思维
设计这个课堂计时器的过程,也是培养大家工程思维的过程。我们需要从整体上规划程序的功能,分析如何实现倒计时、如何动态显示时间等问题。然后逐步将这些想法转化为代码,通过不断地测试和调整,让程序达到我们预期的效果。这就是工程思维在编程中的体现,希望大家在这个过程中能够不断锻炼自己的思维能力。
19
智能抽奖系统
这次我们要分组开发智能抽奖系统。分组开发可以培养大家的团队协作能力,每个小组成员都有不同的优势和想法,通过合作可以汇聚大家的智慧,开发出更完善的程序。同时,在交流和讨论中,大家也能互相学习,共同进步。
在抽奖系统中,设置中奖概率是一个关键功能。我们可以通过一些算法和逻辑来实现这个功能。比如,利用random随机函数生成一个0到1之间的随机数,然后根据设定的中奖概率来判断是否中奖。如果生成的随机数小于等于设定的中奖概率,那么就判定为中奖。大家可以尝试不同的中奖概率设置,看看抽奖结果有什么变化。
分组开发的意义
中奖概率的设置
智能抽奖系统
用户界面设计能让抽奖系统更加友好和易用。我们可以使用一些图形化库,比如Tkinter,来设计一个简单的界面,让用户可以方便地参与抽奖。同时,我们还要实现获奖名单记录功能,将中奖的用户信息记录下来,方便后续查看。这样一个功能齐全的抽奖系统,能让大家更好地体验编程在实际应用中的乐趣。
用户界面设计与获奖名单记录
21
思维拓展——看见代码中的世界
PART 04
红绿灯背后的逻辑
循环结构在路口控制系统中起着至关重要的作用。通过循环,信号灯可以按照设定的时间周期不断地切换,确保各个方向的车辆和行人都能有序通行。如果没有循环结构,信号灯就只能亮一次,无法实现持续的交通控制。
在日常生活中,我们常常会在路口遇到交通信号灯。交通信号灯的周期切换是有规律的,一般来说,红灯、绿灯、黄灯会按照一定的时间顺序依次亮起。例如,红灯持续60秒,绿灯持续40秒,黄灯持续5秒,然后再重复这个过程。这其实就是一种循环结构,不断地重复这个周期,以维持交通的有序进行。
循环结构在路口控制系统中的作用
交通信号灯周期切换原理
23
用嵌套循环模拟路口控制系统
我们可以使用Python中的嵌套循环来模拟路口控制系统。外层循环可以控制信号灯的切换周期,内层循环可以控制每个信号灯的亮起时间。例如,外层循环每执行一次,代表一个完整的信号灯周期;内层循环则根据不同的信号灯状态,控制其亮起的时间。这样,我们就能通过代码实现一个简单的路口信号灯控制系统啦。
红绿灯背后的逻辑
游戏中的随机事件
在很多RPG游戏中,暴击率是一个重要的元素。比如,一个角色的普通攻击伤害是100,而暴击伤害可能是200。暴击的出现并不是必然的,而是有一定的概率,这个概率就是暴击率。例如,某个角色的暴击率为20%,这意味着每次攻击都有20%的可能性触发暴击。这种随机事件增加了游戏的趣味性和不确定性。
宝物掉落机制也是游戏中常见的随机事件。当玩家击败怪物或者完成任务时,有一定的概率掉落宝物。不同的怪物或任务,掉落宝物的概率和种类也不同。比如,在某个副本中,击败BOSS可能有10%的概率掉落稀有装备,而小怪掉落稀有装备的概率可能只有1%。这种随机的宝物掉落机制吸引着玩家不断地挑战,增加了游戏的可玩性。
RPG游戏中的暴击率机制
宝物掉落机制解析
游戏中的随机事件
在游戏开发中,Python的random模块发挥着重要作用。通过它可以生成随机数,从而实现暴击率、宝物掉落等随机事件。例如,使用random.randint()函数可以生成一个指定范围内的随机整数,我们可以根据这个随机整数来判断是否触发暴击或者掉落宝物。通过合理运用random模块,游戏开发者能够为玩家创造出更加丰富多样、充满惊喜的游戏体验。
random在游戏开发中的应用
26
AI猜拳进化论
我们可以设计一个能学习人类出拳规律的人工智能猜拳程序。程序首先记录玩家每次出拳的选择,然后通过分析这些数据,找出玩家出拳的偏好和规律。例如,如果玩家在多次游戏中出石头的频率较高,程序就可以根据这个规律做出相应的策略调整,提高自己获胜的概率。
设计能学习人类出拳规律的人工智能程序
在这个人工智能猜拳程序中,需要引入简单的概率统计知识。通过对玩家出拳数据的统计分析,计算出玩家出石头、剪刀、布的概率。例如,经过100次游戏后,统计发现玩家出石头的概率为40%,出剪刀的概率为30%,出布的概率为30%。根据这些概率,程序可以制定更合理的出拳策略。
引入简单概率统计知识
AI猜拳进化论
通过设计这样的人工智能猜拳程序,我们不仅能更好地理解Python编程和随机事件的应用,还能拓展思维边界。从简单的猜拳游戏出发,延伸到更复杂的人工智能学习和概率统计领域,激发同学们对编程和数学知识的兴趣,为进一步探索更高级的技术打下基础。
拓展思维边界
28
代码艺术家
PART 05
动态艺术画生成
利用random随机函数,我们可以为线条赋予随机的颜色。比如在RGB色彩模式下,通过生成0到255之间的随机整数来确定红、绿、蓝三个通道的值,这样每一条线条都可能拥有独特的色彩,使艺术画色彩斑斓。
线条颜色的随机变幻
在Python编程中,我们可以巧妙地将循环与随机数结合起来,创造出充满创意和变化的抽象艺术画。循环能够让我们重复执行绘制线条的操作,而随机数则为线条的各个参数带来不确定性,从而生成独一无二的艺术作品。
循环与随机数的奇妙组合
动态艺术画生成
除了颜色,线条的角度和长度也可以设置为随机变量。通过random函数生成不同的随机数来决定线条的绘制角度和长度,让每一笔都充满变化,最终组合成一幅极具动态感的抽象艺术画。
角度与长度的随机设定
31
谢谢
汇报人:刘老师
$$