
1.1 猜数游戏

1.1 猜数游戏
在本节的内容中,详细介绍实现一个简单猜数游戏的方法。在介绍具体的实现过程之前,首先讲解实现本游戏所需要的语法技术,并介绍这些技术的使用方法。
1.1.1 使用条件语句
在Python语言中有3种if语句,分别是if、if…else和if…elif…else语句,在接下来的内容中主要讲解前两种语句。
(1)if语句
简单的if语句的语法格式如下所示。

在上述格式中,当“判断条件”非零时表示条件成立,此时会执行if后面的语句,而执行内容可以是多行,使用缩进来区分表示同一范围。当“判断条件”为假时,会跳过if后面的缩进语句,“判断条件”可以是任意类型的表达式。例如在下面的代码中,使用if语句获取输入整数的绝对值。


上述代码的功能是,提示用户输入一个整数,然后输出该整数的绝对值。其中“x=-x”是if语句中的条件成立时选择执行的语句。执行后提示用户输入一个整数,假设用户输入-10,则输出其绝对值10。

(2)if…else语句
在Python语言中,使用if…else语句的语法格式如下所示。

在上述格式中,如果满足判断条件则执行statement1(执行语句1),如果不满足则执行statement2(执行语句2)。例如下面的实例演示了使用if…else语句的过程。

在上述代码中,两个缩进的print()函数是被选择执行的语句。代码运行后将提示用户输入一个整数,例如输入正整数“12”后得到的结果如下所示。

1.1.2 使用for循环语句
在Python程序中,绝大多数的循环结构都是用for循环语句来完成的。在Java等其他高级语言中,for循环语句需要用循环控制变量来控制循环。而在Python语言的for循环语句中,则是通过循环遍历某一序列对象(例如本书后面将要讲解的元组、列表和字典等)的方式构建循环,循环结束的标志是对象被遍历完成。
在Python程序中,使用for循环语句的语法格式如下所示。

上述for循环语句的含义是遍历for循环语句中的各个对象,每经过一次循环,循环变量就会得到遍历对象中的一个值。一般情况下,当对象中的值被全部遍历完成时,会自动退出循环。上述格式中各参数的具体说明如下所示。
● iterating_var:表示循环变量。
● sequence:表示遍历对象,通常是元组、列表和字典等。
● statements:表示执行语句。
例如下面的代码演示了使用for循环语句的过程。

执行后会输出:

1.1.3 具体实现
下面的实例实现了一个简单的猜数游戏,系统会生成一个随机数让用户去猜,并且会给出太大或太小的提示,而且猜对或猜错后会分别给出对应的提示。

实例文件guess.py的具体实现代码如下所示。


在上述代码中,变量number调用random.randint()函数产生一个随机数字,供用户进行猜测,这个随机数字在1到20之间。变量guessesTaken的初始值为0,将用户猜过的次数保存到这个变量中。在代码中设置条件“guessesTaken<6”,这样可以确保循环中的代码只运行6次,也就是用户只有6次猜数机会,执行后会输出:

