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)
while1:
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
来玩一次游戏吧:
游戏
思考一个问题,怎么才能更快的猜中这个随机数?
呼!今天的内容有点多哈,老师把这一讲早点发出来,大家马上可以实践啦!
还是那句话,有问题,我们留言区见~