趣乐博思少儿编程系列
趣乐博思少儿编程系列,以乐趣为首要前提,向少儿讲解最基本的计算机科学常识,在动手实践中培养孩子的创造力,思考力,想象力,逻辑思维能力和协同工作能力。
针对不同年龄段的孩子,从初始的可视图形化编程逐步过渡到高级计算机语言,并结合开源电子器件进行软硬件结合的项目制作,激发孩子们的积极性和对计算机科学的兴趣。
前言
Hello!小朋友们,又见面啦!
昨天我们复习了 for 循环的用法和注意事项,又谈到了在程序中“可读”的重要性。
今天我们继续学习新知识,探索 Python 的神奇世界。
我们的作品是一个有趣的小游戏,加油!
随机数
随机数是一个数学上的概念,在各种计算机语言里都有大量的使用场景,Python 语言自然也不例外。
什么是随机?
就是不确定的意思
怎么理解随机呢?
比如说你和同学玩石头剪刀布,每一次他出什么对你而言是不确定的,这就是随机。
rock-paper-scissors
再比如说,从一个鱼缸里抓阄儿,能抓到什么也是随机的。
draw lots
那么在 Python 中,怎么实现随机数呢?
方法非常简单,Python 有一个内置的模块,名字就叫做 random
,这个模块提供好几种与随机相关的函数,所以,导入这个模块就可以实现随机数的生成了:
import random
r = random.random()
print(r)
随机数的生成
这个随机数是从 0 到 1 但不包括 1 的一个小数,每运行一次都会变换一个。
会不会两次都一样?
理论上会的,那运气真是爆棚了...
好了,有了生成随机数的新技能,我们来做一个小游戏。
一个小游戏
我们现在来设计一个跟随机数有关的小游戏,规则非常简单:
每次生成一个随机的自然数
我们每次猜一个数,由程序来判断
每次猜完,程序会提示答案是大了还是小了
一直猜下去,知道猜对了为止,看谁猜的最快
我们来分析一下,这个程序应该怎么实现。
思路很重要
写程序并不是一直守在计算机前,更多的时候是在分析问题,寻找解决问题的思路。
别误解,我在寻找编程的思路
首先,怎么生成随机数我们已经知道了,但我们生成的是小数,没关系,函数 random.randint()
可以生成自然数,第一个问题解决了。
其次,计算机怎么来接受我们输入的一个数字?
这个用 input()
函数来实现,一个小例子,大家自己试试:
name = input('请问,你的名字是:')
print('你好', name)
接收用户的输入
最后,怎么实现由计算机进行判断,并且一直到猜对为止?
好,答案马上揭晓。
选择判断
选择判断的实现是我们今天的重点,也就是我们上次课提到的程序中的三种控制结构的最后一种。
在 Python 语言中,我们使用 if...elif...else
结构来实现选择结构。
什么意思?
还是看图来理解吧
岔路口
在岔路前,我们需要做一下判断,进而选择一条路来走下去,这就是判断选择的含义,用代码表示是这样的:
star = input('你为自己的勤奋打几星')
# int() 函数把字符转换为数字
star = int(star)
if star > 4:
print('很满意!')
elif star > 2:
print('还行吧!')
else:
print('需要改进啦')
一个完整的选择结构
无限循环
到目前,还剩下一个问题,就是在猜对以前,程序需要一直不停的接收我们输入的数字,怎么才能做到这一点?
这个就要使用非常特殊的循环了,也是除了 for 循环外的另外一种循环 —— while
:
while True:
print('快按停止!')
大家可以试一下这两行代码。
打印的文字会快速闪现无数遍,直到你按下停止为止,这就是无限循环,也叫做死循环,一般是要在程序中避免出现的。
但是,在我们这个特定的场景中,恰好需要用到它。
那么,在猜对时,怎么来让无限循环停止呢?
我们加一行代码,看这个例子:
while True:
print('不用着急,只打印一次')
break
在循环中,一旦遇到 break
,循环就会马上终止,无论是 for
还是 while
循环,都是一样的。
游戏的实现
经过以上一系列的分析和学习,我们已经彻底的解决了这个小游戏的各方面的问题!
这就像是我们已在心中有了文章的脉络,剩下的就是提笔书写了,一份完整的代码是这样的:
import random
# 限制数的范围为 1 到 100
r_int = random.randint(1, 101)
while 1:
answer_str = input('请输入一个你猜的数:')
answer_int = int(answer_str)
if answer_int < r_int:
print('你猜的数:' + answer_str + '小了')
elif answer_int > r_int:
print('你猜的数:' + answer_str + '大了')
else:
print('你猜对啦!答案是:' + answer_str)
break
来玩一次游戏吧:
思考一个问题,怎么才能更快的猜中这个随机数?
呼!今天的内容有点多哈,老师把这一讲早点发出来,大家马上可以实践啦!
还是那句话,有问题,我们留言区见~
「 Python 初体验 」
从零开始,以通俗易懂的方式,快乐有趣的开启 Python 语言的大门~
清华计算机系哥哥专业讲解
趣乐博思教育
遇见你更优秀的孩子
r
如果您喜欢 趣乐博思教育,请关注我们的公众号,发现您更优秀的孩子!
如果您从这篇文章有所收获,请点亮下方 在看,或转发到朋友圈,谢谢!