1. Python是面向___的高级语言。
2. Python可以在多种平台运行,这体现了Python语言___的特性。
3. Python模块的本质是___文件。
4. 使用___关键字可以在当前程序中导入模块。
5. 使用___语句可以将指定模块中的全部内容导入当前程序。
二、判断题
1. 相比C++程序,Python程序的代码更加简洁、语法更加优美,但效率较低。( )
2. “from模块名import*”语句与“import模块名”语句都能导入指定模块的全部内容,相比之下,from…import*导入的内容无须指定模块名,可直接调用,使用更加方便,因此更推荐在程序中通过这种方式导入指定模块的全部内容。( )
3. Python 3.x版本完全兼容Python 2.x。( )
4. PyCharm是Python的集成开发环境。( )
5. 模块文件的后缀名必定是.py。( )
三、选择题
1. 下列选项中,不是Python语言特点的是( )。
A. 简洁B. 开源C. 面向过程D. 可移植
2. 下列哪个不是Python的应用领域?( )
A. Web开发B. 科学计算C. 游戏开发D. 操作系统管理
3. 下列关于Python的说法中,错误的是( )。
A. Python是从ABC语言发展起来的B. Python是一门高级计算机语言C. Python只能编写面向对象的程序D. Python程序的效率比C程序的效率低四、
简答题
1. 简述Python的特点。
2. 简单介绍如何导入与使用模块。
3. 简述Python中模块、包和库的意义。
五、编程题请在Python开发工具中输入并运行以下程序,查看程序运行结果。
1. 整数求和。输入整数n,计算1~n之和。
n = int(input('请输入一个整数:'))
sum = 0
for i in range(n):
i += 1
sum += i
print("1到%d的求和结果为%d"% (n,sum))
2. 整数排序。输入3个整数,把这3个数由小到大输出。
l = []
for i in range(3): #循环遍历三次
i += 1 #i++
x = int(input('请输入整数:')) #接收3个数值
l.append(x) #将数值放进数组
l.sort() #对数组进行升序排序
print(l)
3. 打印九九乘法表。
for i in range(1,10):
for j in range(1,i+1):
print("%d*%d=%-2d"%(j,i,i*j),end='')
print(" ")
4. 绘制多个起点相同但大小不同的五角星,如图1-27所示。
2.9 习题
一、填空题
1. Python中建议使用___个空格表示一级缩进。
2. 布尔类型的取值包括___和___。
3. 使用___函数可查看数据的类型。
4. float()函数用于将数据转换为___类型的数据。
5. 若a=3,b=-2,则a+=b的结果为___。
二、判断题
1. Python中可以使用关键字作为变量名。( )
2. 变量名可以以数字开头。( )
3. Python标识符不区分大小写。( )
4. 布尔类型是特殊的浮点型。( )
5. 复数类型的实数部分可以为0。( )
三、选择题
1. Python中使用( )符号表示单行注释。
A. #B. /C. //D. <!-- -->
2. 下列选项中,属于Python关键字的是( )。
A. name B. if C. is D. and
3. 下列选项中,属于数字类型的是( )。
A. 0 B. 1.0 C. 1+2j D. 以上全部
4. 若将2转换为0b10,应该使用( )函数。
A. oct() B. bin() C. hex() D. int()
5. 下列选项中,不属于Python数据类型的是( )。
A. bool B. dict C. string D. set
四、简答题
1. 请简单介绍Python中的数据类型和数字类型。
2. 请简述Python变量的命名规范。
3. 请简单介绍Python中的运算符。
五、编程题
1. 编写程序,要求程序能根据用户输入的圆半径数据计算圆的面积(圆的面积公式:S=πr2),并分别输出圆的直径和面积。
# 编写程序,要求程序能根据用户输入的圆半径数据计算圆的面积
# (圆的面积公式:S=πr2),并分别输出圆的直径和面积。
r = float(input('请输入圆的的半径:'))
Pi = 3.14
print('半径为%f的圆的面积为%f',r,Pi*r*r)
2. 已知某煤场有29.5t煤,先用一辆载重4t的汽车运3次,剩下的用一辆载重为2.5t的汽车运送,请计算还需要运送几次才能送完?编写程序,解答此问题。
# 2. 已知某煤场有29.5t煤,先用一辆载重4t的汽车运3次,
# 剩下的用一辆载重为2.5t的汽车运送,
# 请计算还需要运送几次才能送完?编写程序,解答此问题。
count = 3
sum = 29.5
for i in range(3):
sum -= 4
print(sum)
while sum >0:
sum -=2.5
count +=1
print('送完这些煤需要%d次',count)
第二章实训案例
绝对温标又称开氏温标、热力学温标,是热力学和统计物理中的重要参数之一,也是国际单位制7个基本物理量之一。绝对温标的单位为开尔文(简称开,符号为K),绝对温标的零度对应人们日常使用的摄氏温度(单位为摄氏度,简称度,符号为℃)的-273.15℃。本案例要求编写代码,实现将用户输入的摄氏温度转换为以绝对温标标识的开氏温度的功能。
运行代码:
i = input('请输入摄氏温度:')
print('该摄氏温度对应的开氏温度为:%.2fK'%(float(i)+273.15))
正在上传…重新上传取消
本案例要求编写代码,实现根据用户输入的身高体重计算BMI指数的功能。
运行代码:
x = float(input('请输入您的体重(kg)'))
y = float(input('请输入您的身高(m)'))
print('您的BMI为%f'%(x/(y*y)))
1. 定义字符串可使用___、___和___包裹。
2. 删除字符串中头部的空格,可以使用___方法。
3. 拼接字符串可以使用___方法和运算符___。
二、判断题
1. 字符串中不可以包含特殊字符。( )
2. 无论是使用单引号还是双引号定义的字符串,使用print( )输出的结果是一致的。( )
3. rjust( )方法用于将字符串的字符以右对齐方式进行显示。( )
4. find( )方法返回-1说明子串在指定的字符串中。( )
5. strip( )方法默认会删除字符串头、尾的空格。( )
6. 如果字符串中包含3对双引号,可以使用单引号包裹这个字符串。( )
三、选择题
1. Python中使用( )可组成转义字符。
A. / B. \ C. $ D. %
2. 下列选项中,用于格式化字符串的是( )。
A. %B. format( )C. f-stringD. 以上全部
3. 下列关于字符串的说法,错误的是( )。
A. 字符串创建后可以被修改
B. 字符串可以使用单引号、双引号和三引号定义
C. 转义字符\n表示换行
D. 格式符均由%和说明转换类型的字符组成
4. 下列方法中,可以将字符串中的字母全部转换为大写的是( )。
A. upper( )B. lower( )C. title( )D. capitalize( )
5. 下列选项中,不属于字符串的是( )。A. "1"B. 'python'C. """^"""D. '1'.23
四、简答题
1. 请简述什么是字符串。
2. 请简述Python中格式化字符串的几种方式。
3. 请简述Python中字符串对齐的几种内置方法。
五、编程题
1. 编写程序,已知字符串s = 'AbcDeFGhIJ',计算该字符串中小写字母的数量。
2. 编写程序,检查字符串"Life is short. I use python"中是否包含字符串"python",若包含则替换为"Python"后输出新字符串,否则输出原字符串。
4.5 实训案例
4.5.1 敏感词替换敏感词通常是指带有敏感政治倾向、暴力倾向、不健康色彩的词语或不文明的词语。对于文章中出现的敏感词,常用的处理方法是使用特殊符号(如“*”)对敏感词进行替换。本案例要求编写代码,实现具有替换敏感词功能的程序。
4.5.2 文字排版工具文字排版工具是一款强大的文章自动排版工具,它会将文字按现代汉语习惯及发表出版要求进行规范编排。文字排版工具一般具备删除空格、英文标点替换、英文单词大写功能。本案例要求编写代码,实现具有上述功能的文字排版工具。
5.10 习题一、填空题
1. 使用Python内置的___函数可创建一个列表。
2. Python中列表的元素可通过___或___2种方式访问。
3. 使用Python内置的___函数可创建一个元组。
4. 字典元素由___和___组成。
5. 通过Python的内置方法___可以查看字典键的集合。
6. 调用items()方法可以查看字典中的所有___。
二、判断题
1. 列表只能存储同一类型的数据。( )
2. 元组支持增加、删除和修改元素的操作。( )
3. 列表的索引从1开始。( )
4. 字典中的键唯一。( )
5. 集合中的元素无序。( )
6. 字典中的元素可通过索引方式访问。( )
三、选择题
1. 下列方法中,可以对列表元素排序的是( )。
A. sort() B. reverse() C. max() D. list()
2. 阅读下面的程序:
正在上传…重新上传取消
运行程序,输出结果是( )。
A. [1 ,2]
B. [2 ,1]
C. [1 ,2 ,5 ,6]
D. [6 ,5 ,2 ,1]
3. 下列选项中,默认删除列表最后一个元素的是( )。
A. del
B. remove()
C. pop()
D. extend()
4. 阅读下面程序:
正在上传…重新上传取消
运行程序,输出结果是( )。
A. {'01' :'Python', '02' :'Java', '03' :'PHP'}
B. {'01' :'Python', '02' :'Java', '03' :'C++'}
C. {'03' :'C++','01' :'Python', ‘02' :'Java'}
D. {'01' :'Python', '02' :'Java'}
5. 阅读下面程序:
正在上传…重新上传取消
运行程序,输出结果是( )。
A. 5 B. 3 C. 4 D. 2
四、简答题
1. 列举Python中常用的组合数据类型,并简单说明它们的异同。
2. 简单介绍删除字典元素的几种方式。
五、编程题
1. 已知列表li_num1 = [4, 5, 2, 7]和li_num2 = [3, 6],请将这两个列表合并为一个列表,并将合并后的列表中的元素按降序排列。
2. 已知元组tu_num1 = ('p', 'y', 't', ['o', 'n']),请向元组的最后一个列表中添加新元素'h'。3. 已知字符串str= 'skdaskerkjsalkj',请统计该字符串中各字母出现的次数。4. 已知列表li_one = [1,2,1,2,3,5,4,3,5,7,4,7,8],请删除列表li_one中的重复数据。
5.7 实训案例
5.7.1 青春有你近两年偶像选秀节目风靡,吸引了许多喜欢唱跳、有明星梦想的少男少女参加,《青春有你》正是节目之一。《青春有你》采用计票机制,选手获得的票数越多,排名就越靠前。本案例要求编写程序,接收选手的姓名和票数,输出排序后的成绩。
5.7.2 手机通讯录通讯录是记录了联系人姓名和联系方式的名录。手机通讯录是最常见的通讯录之一,人们可以在手机通讯录中通过姓名查看相关联系人的联系方式,也可以在其中新增、修改或删除联系人信息。本案例要求编写程序,实现具备添加、查看、修改和删除联系人信息功能的手机通讯录。
6.11 习题一、填空题
1. ________是组织好的、实现单一功能或相关联功能的代码段。
2. 匿名函数是一类无须定义________的函数。
3. 若函数内部调用了自身,则这个函数被称为________。
4. Python使用________关键字可以将局部变量声明为全局变量。
5. 全局变量是指在函数________定义的变量。
二、判断题
1. 函数在定义完成后会立刻执行。( )
2. 变量在程序的任意位置都可以被访问。( )
3. 使用函数可以提高代码的复用性。( )
4. 在任何函数内部都可以直接访问和修改全局变量。( )
5. 函数的位置参数有严格的位置关系。( )
三、选择题
1. 下列关于函数的说法中,描述错误的是( )。
A. 函数可以减少重复的代码,使程序更加模块化
B. 不同的函数中可以使用相同名字的变量
C. 调用函数时,实参的传递顺序与形参的顺序可以不同
D. 匿名函数与使用def关键字定义的函数没有区别
2. Python使用( )关键字定义一个匿名函数。
A. function B. func C. def D. lambda
4. 请阅读下面的代码:
正在上传…重新上传取消
运行代码,输出结果为( )。
A. 102 B. 100 C. 22 D. 12
5. 请阅读下面的代码:
正在上传…重新上传取消
运行代码,输出结果为( )。
A. (11,22,33)B. (22,33,44)C. (33,44,55)D. (11,22)
四、简答题
1. 简述位置参数传递、关键字参数传递、默认参数传递的区别。
2. 简述函数参数混合传递的规则。
3. 简述局部变量和全局变量的区别。
五、编程题
1. 编写函数,输出1~100中偶数之和。
2. 编写函数,计算20×19×18×…×3的结果。
3. 编写函数,判断用户输入的整数是否为回文数。回文数是一个正向和逆向都相同的整数,如123454321、9889。
4. 编写函数,判断用户输入的3个数字是否能构成三角形的三条边。
5. 编写函数,求2个正整数的最小公倍数。
6.8.1 兔子数列兔子数列又称斐波那契数列、黄金分割数列,它由数学家列昂纳多·斐波那契以兔子繁殖的例子引出,故此得名。兔子繁殖的故事如下。兔子一般在出生2个月之后就有了繁殖能力,每对兔子每月可以繁殖1对小兔子,假如所有的兔子都不会死,试问一年以后一共有多少对兔子?本案例要求编写代码,利用递归实现根据月份计算兔子总数量的功能。
6.8.2 归并排序归并排序是一种基于归并算法的排序方法,该方法采用“分治”策略:先将待排序的序列划分成若干长度为1的子序列,依次将2个相邻子序列排序后合并成长度为2的子序列;再依次将2个相邻子序列排序后合并成长度为4的子序列,直至合并成最初长度的序列为止,得到一个排序后的序列。例如,列表[8,4,5,7,1,3,6,2]的元素采用归并排序的方法进行排列的过程如图6-5所示。
正在上传…重新上传取消
本案例要求编写代码,利用递归实现归并排序算法。
7.7 习题一、填空题
1. 打开文件对文件进行读写后,应调用___方法关闭文件以释放资源。
2. seek()方法用于指定文件的读写位置,该方法的___参数表示要偏移的字节数。
3. readlines()方法读取整个文件内容后会返回一个___。
4. os模块中的mkdir()函数用于___。
5. 在读写文件的过程中,___方法可以获取当前的读写位置。
二、判断题
1. 文件打开的默认方式是只读。( )
2. 以读写方式打开一个文件,若文件已存在,文件内容会被清空。( )
3. 使用write()方法写入文件时,数据会追加到文件的末尾。( )
4. 实际开发中,目录操作需要使用os模块中的函数。( )
5. 使用read()方法只能一次性读取文件中的所有数据。( )
三、选择题
1. 打开一个已有文件,在文件末尾添加信息,正确的打开模式为( )。
A. rB. wC. aD. w+
2. 假设文件不存在,如果使用open()方法打开文件会报错,那么该文件的打开模式是下列哪种?( )
A. rB. wC. aD. w+
3. 假设file是文本文件对象,下列哪个选项可读取file的一行内容?( )
A. file.read()B. file.read(200)C. file.readline()D. file.readlines()
4. 下列方法中,用于向文件中写入数据的是( )。
A. open()B. write()C. close()D. read()
5. 下列方法中,用于获取当前目录的是( )。
A. open()B. write()C. getcwd()D. read()
6. 下列代码要打开的文件应该在( )。
正在上传…重新上传取消
A. C盘根目录B. D盘根目录C. Python安装目录D. 程序所在目录
7. 若文本文件abc.txt中的内容如下:
正在上传…重新上传取消
以上程序的执行结果为( )。
A. ['abcdef'] B. ['abcdef\n'] C. ['a', 'b', 'c', 'd', 'e', 'f'] D. ['a', 'b', 'c', 'd', 'e', 'f', '\n']
四、简答题
1. 请简述文本文件和二进制文件的区别。
2. 请简述读取文件3种方法read()、readline()、readlines()的区别。
五、编程题
1. 读取一个文件,打印除以字符#开头的行之外的所有行。
2. 编写程序,实现文件备份功能。
3. 编写程序,读取一个存储若干数字的文件,对其中的数字排序后输出。
7.4 实训案例
7.4.1 信息安全策略——文件备份当今是信息时代,信息在当今社会占据的地位不言而喻,信息安全更是当前人们重视的问题之一。人们考虑从传输和存储2个方面来保障信息的安全,备份是在存储工作中保障信息安全的有效方式。本案例要求编写程序,实现一个具有备份文件与文件夹功能的备份工具。
7.4.2 用户账户管理某些网站要求访问者在访问网站内容之前必须先进行登录;若访问者没有该网站的账号,则需要先进行注册。访问者注册完账号后,网站的服务器会保存账号信息,以便访问者下次访问网站时网站可根据保存的信息验证访问者的身份。为保障账户安全,访问者可时常修改账号密码;若访问者决定不再访问此网站,可以选择注销账户。本案例要求实现包含用户注册、登录、修改密码和注销功能的用户账户管理程序(要求程序使用文件存储用户的账户信息)。
8.13 习题一、填空题
1. Python中使用________关键字来声明一个类。
2. 类的成员包括________和________。
3. Python可以通过在类成员名称之前添加________的方式将公有成员改为私有成员。
4. 被继承的类称为________,继承其他类的类称为________。
5. 子类中使用________函数可以调用父类的方法。
二、判断题
1. Python通过类可以创建对象,有且只有一个对象。( )
2. 实例方法可以由类和对象调用。( )
3. 子类能继承父类全部的属性和方法。( )
4. 创建类的对象时,系统会自动调用构造方法进行初始化。( )
5. 子类中不能重新实现从父类继承的方法。( )
三、选择题
1. 下列关于类的说法,错误的是( )。
A. 类中可以定义私有方法和属性
B. 类方法的第一个参数是cls
C. 实例方法的第一个参数是self
D. 类的实例无法访问类属性
2. 下列方法中,只能由对象调用的是( )。
A. 类方法 B. 实例方法 C. 静态方法 D. 析构方法
3. 下列方法中,负责初始化属性的是( )。
A. __del__()B. __init__()C. __init()D. __add__()
4. 下列选项中,不属于面向对象三大重要特性的是( )。
A. 抽象B. 封装C. 继承D. 多态
5. 请阅读下面的代码:
正在上传…重新上传取消
运行代码,输出结果为( )。
A. 20B. 40C. 21D. 41
四、简答题
1. 简述实例方法、类方法、静态方法的区别。
2. 简述构造方法和析构方法的特点。
3. 简述面向对象的三大特性。
五、编程题
1. 设计一个Circle(圆)类,该类中包括属性radius(半径),还包括__init__()、get_perimeter()(求周长)和get_area()(求面积)共3个方法。设计完成后,创建Circle类的对象求圆的周长和面积。
2. 设计一个Course(课程)类,该类中包括number(编号)、name(名称)、teacher(任课教师)、location(上课地点)共4个属性,其中location是私有属性;还包括__init__()、show_info()(显示课程信息)共2个方法。设计完成后,创建Course类的对象显示课程的信息。
8.10 实训案例
8.10.1 人机猜拳游戏相信大家对猜拳游戏都不陌生。猜拳游戏又称“猜丁壳”,是一个古老、简单、常用于解决争议的游戏。猜拳游戏一般包含3种手势:石头、剪刀、布,判定规则为石头胜剪刀,剪刀胜布,布胜石头。本案例要求编写代码,实现基于面向对象思想的人机猜拳游戏。
8.10.2 自定义列表列表是Python内置的数据类型,可以灵活地增加、删除、修改、查找其中的元素,但即使列表只包含数值,它仍不支持与数字类型进行四则运算。为使列表支持四则运算,可以自定义一个列表类,在该类中重载运算符,使列表中各元素分别与数值相加、相减、相乘或相除后所得的结果组成该列表的新元素。本案例要求编写代码,重载运算符,使列表支持四则运算。
9.7 习题
一、填空题
1. Python中所有异常都是______的子类。
2. 当程序中使用了一个未定义的变量时会引发______异常。
3. 自定义异常需要继承______类。
4. 若不满足assert语句中的表达式会引发______异常。
二、判断题
1. try-except语句中只能有一个except子句。( )
2. finally子句在任何情况下都会被执行。( )
3. raise语句可以抛出指定的异常。( )
4. 断言语句中表达式的值为True时会触发AssertionError异常。( )
5. try-except语句可以有多个finally子句。( )
三、选择题
1. 下列选项中,关于异常的描述错误的是( )。
A. 错误就是异常,异常就是错误
B. 异常是程序运行时产生的
C. IndexError是Exception的子类
D. except子句一定位于else和finally子句之前
2. 当try子句中的代码没有任何错误时,一定不会执行( )子句。
A. tryB. exceptC. elseD. Finally
3. 若执行代码“1/0”,会引发什么异常?( )
A. ZeroDivisionErrorB. NameErrorC. KeyErrorD. IndexError
4. 在完整的异常捕获语句中,各子句的顺序为( )。
A. try → except → else → finally
B. try → else → except → finally
C. try → except → finally → else
D. try → else → finally → except
5. 下列代码运行后会引发( )异常。
正在上传…重新上传取消
A. SyntaxErrorB. IndexErrorC. KeyErrorD. NameError
四、简答题
1. 请简述什么是异常。
2. 请简述本章介绍的4种Exception类异常并说明其产生的原因。
3. 请写出raise语句抛出异常的3种格式,并简单介绍每种格式的功能。
五、编程题
1. 编写程序,按用户输入的半径计算圆的面积,若半径为负值则抛出异常(圆的面积公式:S=πr2)。
2. 编写程序,按用户输入的三角形3条边判断能否构成直角三角形,若能构成则计算三角形的面积和周长,否则引发异常。
9.5 实训案例
9.5.1 头像格式检测通常,在网站上传头像时需要按照网站的要求上传指定格式的图片文件,若上传非指定的文件格式会出现错误提示。例如,某网站只允许用户上传JPG、PNG和JPEG格式的文件,若上传其他格式的文件,则提示用户格式错误。本案例要求编写代码,通过异常捕获语句实现用户上传头像格式检测的功能。
9.5.2 商品数量检测网络购物给人们的生活带来了极大的便利,它通过网络商城供用户选购商品,采用快递的形式送货上门。用户在进行网购时,需要同时选择商品和数量,只有输入的商品数量不小于1(默认值设为1)才符合规则,小于1则提示错误信息。本案例要求编写代码,实现具有检测商品数量是否符合规则的程序。
10.8 习题
一、填空题
1. ___是一种按照一定的规则,自动从网络上抓取信息的程序或者脚本。
2. ___指用适当的统计分析方法对收集来的大量数据进行汇总与分析,以求最大化地发挥数据的作用。
3. Python计算生态通过___、___、___库为数据分析领域提供支持。
4. random是Python的___库,pygame是___库。
5. 通过pygame的___函数可以初始化所有子模块。
二、判断题
1. Python开发人员可以使用内置库,也可以使用第三方库。( )
2. Python程序中使用内置库与第三方库的方式相同,但使用第三方库之前需要先将库导入程序。( )
3. 自定义库只能由自己在本地使用。( )
4. 时间差的计算没有意义。( )
5. jieba是一个中文分词库,但该库同时也可以对英文进行分词。( )
6. pygame库中的init()函数可以初始化所有子模块。( )
7. time模块是Python的内置模块,可以在程序中直接使用。( )
三、选择题
1. 下列选项中,用于判断.py文件是作为脚本执行还是被导入其他程序的属性是( )。
A. __init__B. __name__C. __exce__D. __main__
2. 下列选项中,会在发布自定义库时用到的命令是( )。
A. python setup.py build
B. python setup.py sdist
C. python setup.py install
D. 以上全部
3. 下列方法中,返回结果是时间戳的是( )。
A. time.sleep()B. time.localtime()C. time.strftime()D. time.ctime()
4. 阅读下面的程序:
正在上传…重新上传取消
下列选项中,可能为以上程序输出结果的是( )。
A. 'Mon Apr 13 02:05:38 2020'
B. time.struct_time(tm_year=2020, tm_mon=4, tm_mday=11, tm_hour=11, tm_min=54,tm_sec=42, tm_wday=5, tm_yday=102, tm_isdst=-1)
C. 3173490635.1554217
D. '11:54:42'
5. 阅读下面的程序:
正在上传…重新上传取消
下列选项中,不可能为以上程序输出结果的是( )。
A. 1B. 4C. 7D. 9
四、简答题
1. 简单列举Python计算生态覆盖的领域(至少5个)。
2. 简述Python中库、包和模块的概念。
3. 若想对2个表示时间的变量进行计算,应将时间转换为什么格式?为什么?
五、编程题
1. 读取存储《哈姆雷特》英文剧本的文件,统计其中单词出现的频率,使用turtle模块绘制词频统计结果,以柱状图的形式展示统计结果。统计效果如图10-24所示。
正在上传…重新上传取消
图10-24 统计结果参考图示
2. 编写程序,实现一个根据指定文本文件和图片文件生成不同形状词云的程序。
10.6 实训案例10.6.1 出场人物统计《西游记》是中国古代第一部浪漫主义章回体长篇神魔小说,是中国古典四大名著之一。全书主要描写了孙悟空出世及大闹天宫后,与唐僧、猪八戒、沙悟净和白龙马四人一同西行取经,历经九九八十一难到达西天见到如来佛祖,最终五圣成真的故事。《西游记》篇幅巨大、出场人物繁多,本案例要求编写程序,统计《西游记》小说中关键人物的出场次数。
10.6.2 小猴子接香蕉小猴子接香蕉游戏是一个根据游戏得分判定玩家反应力的游戏。该游戏的设定非常简单,游戏主体为小猴和香蕉。香蕉从屏幕顶端随机位置出现,匀速垂直落下,玩家用鼠标左右键控制小猴子左右移动来接住香蕉。若小猴子接到香蕉,游戏得分增加。玩家可自行单击窗口的关闭按钮结束游戏。本案例要求编写程序,实现一个小猴子接香蕉游戏。