第35卷  第10期 福  建  电  脑 Vol. 35  No.10
2019年10月
Journal of Fujian Computer
Oct. 2019
———————————————
颜有晖,男,1970年生,福州第二中学,高级教师,Email :yanyouhui.fzez@foxmail
Python 程序设计基础试题解析
颜有晖
(福州第二中学 福州 350001)
摘  要 基于教育部2017年颁布的普通高中信息技术课程标准与布鲁姆教育目标分类理论。本文以麻省理工学院青少年程序项目Python 为基础,针对Python 入门测试习题,简明分析考察知识内容,学科思维及解决问题的目标达成情况。 关键词 布鲁姆;教育目标;程序教学;Python ;算法;练习题  中图法分
类号 TP31  DOI:10.16707/jki.fjpc.2019.10.040
The Analysis of Preliminary Test Problemes in Python Programming
YAN Youhui
(Fuzhou No.2 High School ,Fujian Fuzhou 350001)
1引言
Python 是荷兰程序员Guido van Rossum 开发的一种易于学习又功能强大的编程语言。它提供了高效的高层次的数据结构,还有简单有效的面向对象编程。
Python 语言附带一个庞大的标准库,涵盖了字符串处理、因特网协议、软件工程、以及操作系统接口。Python 解释器易于扩展,可以使用 C 或 C++(或者其他可以从 C 调用的语言)扩展新的功能和数据类型。Python 优雅的语法和动态类型,以及解释型语言的本质,使它成为在很多领域多数平台上编写脚本和快速开发应用的理想语言,因此Python 语言很快风靡全球,得到广大程序员的喜爱。
随着大数据和人工智能的发展,在越来越多的中小学在程序设计教学中选择了Python 语言。在教学中,教师需要阶段性的教学反馈和统计数据来确认既有教学成果和指导后续教学实施,但又不能为此
花费太多的时间和精力成本。因此,方便实施且能考察知识性、结构性问题的选择题是一种合理的选择。本文选用2017版普通高中信息技术课程标准,结合“知识-思维”模型来研究Python 基础测
试的考察点[1]。
2 Python 基础题及分析
(1) Python 解释器的交互模式中,主提示符通常是?
A  >
B  >>>
C  .
D  … 答案:B
解析:解释器运行在交互模式(interactive mode )时会显示主提示符(primary prompt ),提示输入下一条指令,通常用三个大于号(>>>)表示;多行指令需要在连续的多行中输入,此时它会显示次要提示符,默认是三个点(...)。进入解释器时,它会先显示欢迎信息、版本信息、版权声明,然后就会出现提示符。
(2) Python 官方集成开发环境IDLE 中,要执行一个源代码文件,应该使用哪个菜单项?    A  File →Open    B  Edit →Go to line    C  Run →Run Module  D  Run →Python Shell
答案:C
解析:考察对界面的熟悉程序,引导教学对象独立探究陌生软件的功能模块。
(3) Python 3.x 版本的源代码文件在保存时,一般建
130 颜有晖:Python程序设计基础试题解析第10期
正则表达式30分钟入门教程[转
议扩展名为下列哪一项?
A python
B exe
C py3
D py
答案:D
解析:Python3.x与Python2.x的源代码文件名都推荐采用*.py,可以引入探究环节:扩展名.exe 一般代表什么文件,与源代码什么关系[2]?
(1)-(3)题小结:前三题主要考察学生是否学习过Python。
(4) 下列哪一项不是Python的内置数据类型?
A 复数
B 列表
C 集合
D 堆栈
答案:D
positionrelative是什么意思解析:Python的内置数据类型极为丰富,除了基本的数据类型外还内置许多高级数据类型,堆栈虽然不是Python的内置数据类型,但是可以很方便的用列表的属性和方法模拟堆栈操作(要记住Python是面向对象的,哪怕是基本的数字类型也是对象)。
(5) Python语言中,表达式int(-4.3)的值是?
A -5
B -4
C    5
D    4
答案:B
解析:Python的内置函数int()是取整函数,取整方法是向数轴原点方向取整。选项C和D是干扰项,故此应选择选项B。
(6) 若有word=’123’,下列各组判断不正确的是?
①word*2等于’123123’
②word+word 等于”123123”
③word*2 等于246
④word+word 等于246
A ①②
B ①④
C ③②
D ③④
答案:A
解析:Python中处理文本数据是使用str 对象,也称为字符串,是由Unicode 码位构成的不可变序列。字符串字面值有多种不同的写法:单引号('……'),'允许包含有"双" 引号';双引号("……"),"允许包含有'单' 引号"。字符串可以用“+”号连接,用“*”号重复,选项③和④都将字符串当制作数字,这是错误的,因此正确选项是A。
(7) 下面关于Python中的列表类型的叙述不正确的是?
A 列表中不允许包含不同类型的元素
B 内置函数len() 也可以作用到列表上
C 列表也支持索引和切片
D 列表同样支持拼接操作
答案:A
解析:Python中可以通过组合一些值得到多种复合数据类型。其中最常用的是列表,可以通过方括号括起、逗号分隔的一组值得到。一个列表可以包含不同类型的元素,但通常使用时各个元素类型相同。列表也是序列类型,同样支持索引、切片、拼接等序列类型的基本操作。
(8) Python内置函数中用于输入输出的分别是?
A input()和output()
B read()和write()
C input()和print()
D read()和print()
答案:C
解析:Python的内置函数中有input()输入函数从标准输入(默认是键盘)读取一行,将其转换为字符串(除了末尾的换行符)并返回。内置函数print()输出到指定文本流。所以选项C正确。
(4)-(8)题小结:这几题考察学生关于Python内置数据类型与内置函数的基本知识。
(9) 图1中的程序段的功能是输入一个整数x,如果x等于零择输出字符串“Zero”,否则输出x的绝对值。那么★处应该填写的内容是?
图1  程序段
A elseif  x==0
B elseif  x==0:
C elif  x==0
x = int(input("Please enter an integer: "))
if x < 0:
print(-x)
print('Zero')
else:
print(x)
2019年福建电脑131教程是什么东西
D elif  x==0:
答案:D
解析:Python语言用缩进来组织语句,在同一块语句中的每一行,都要缩进相同的长度。If语句可以有零个或多个elif 部分,以及一个可选的else 部分,关键字'elif' 是'else if' 的缩写。语句中判断条件的后面都有一个冒号“:”。故此,只有选项D符合要求。
(10) 下面各项中都是Python中用于循环执行的语句的是?
A while和for
B while和repeat
C for和loopvlookup函数跨表使用方法
D do……until和repeat
答案:A
解析:Python的while语句用于在表达式保持为真的情况下重复地执行子句体;如果表达式值为假(这可能在第一次检验时就发生)则执行else子句体(如果存在)并终止循环。for语句用于对序列(例如字符串、元组或列表)或其他可迭代对象中的元素进行迭代,然后将为迭代器所提供的每一项执行一次子句体。repeat、loop、do……until都不是Python的循环语句。
(11) 如果要从Python程序的循环中跳出,可以使用哪个语句?
A  goto
B jump
C continue
D break
答案:D
解析:break语句,用于跳出最近的for或while 循环,continue语句表示继续循环中的下一次迭代,不像早期的程序设计语言有直接跳转语句,现代的程序设计语言都是结构化的,不允许随意跳转,选项A和B是干扰项。所以应该选D。
(9)-(11)题小结:这几题考察Python基本的流程控制语句的知识。
3 Python进阶题及分析
(1) 已知变量x是浮点数,下面各项表达式不能判断x的值是否为整数的是?
A x.is_integer()
B x is int
C int(x)==x
D not x-int(x)
答案:B
解析:Python的内置数据类型也是对象,选项A运用了浮点数自带判断数值是否为整数的方法。int()函数是Python内置的取整函数,如果取整后与原数相等,这个数自然是整数。Python中将可以看做“假”、“零”、“空”的值视为逻辑值假,而“非假”、“非零”、“非空”的值视为逻辑真值。因此原数与取整后的差也能反映x是否是整数,只是为了符合语义需要做一次逻辑非运算。选项B的比较运算“is”是用于判断对象是否为某种类型,但是题目中已知对象x为浮点数,需要判断的是数值而不是类型是否为整数。故此应选择选项B。
(2) 若有word=’abcde’,下列哪项的值是’bcd’?
A word[2:4]
B word[2:5]
C word[1:3]
D word[1:4]
答案:D
解析:Python中字符串是可以被索引(下标访问)的,第一个字符索引是0。索引也可以用负数,这种会从右边开始数,最右边索引为-1,向左依次减一。字符串还支持切片。索引可以得到单个字符,而切片可以获取子字符串,str[m:n]将得到从索引m到索引n-1的子串(不包含str[n])。子串’bcd’的第一个’b’字符在原串中是第2个字符,索引是1;最后一个字符’d’在原串中是第4个字符,索引是3。但是因为切片时不包含后一个索引指向的字符,为了包含字符’d’,切片时后一个索引要将字符’d’的索引加1。因此选项D的判断是正确的。
(3) 如果图2的代码运行时,从键盘输入”7+8”(不含引号)回车,输出的内容是?
图2 代码
A you are 7+8 years old.
B you are
year=int(eval(input('how old are you:')))
print('your are ',end='')
print(year,'years old.')
132 颜有晖:Python程序设计基础试题解析第10期
7+8 years old.
C you are 15 years old.
D you are 15 years old.
python基础代码练习答案:C
swoole4协程原理解析:Python的内置函数中有input([prompt])输入函数从标准输入(默认是键盘)读取一行,将其转换为字符串(除了末尾的换行符)并返回。内置函数eval(expression)将参数看作表达式计算并返回结果。因此输入的“7+8”将得到数值15赋值给变量year。print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)输出函数将objects打印到file指定的文本流,以sep分隔并在末尾加上end。Sep、end、file和flush可以省略,如果存在,它们必须以关键字参数的形式给出。由于第一个print指定了end 为空串,则输出后不会换行,第二个print会紧跟在后面输出。所以选项C正确。
(4) 想在列表a的末尾追加一个元素整数x,以下哪个的语句不能做到?
A    a.appene(x)
B    a.insert(len(a),x)
C a=a+x
D a=a+[x]
答案:B
解析:这里考察对列表对象的方法的知识。列表有append方法在列表末尾添加一个元素,insert 方法在给定的位置插入一个元素。故选项A和B都可以达成目标。列表也可以进行拼接操作,但是拼接的对象必须都是列表,选项D中[x]是元素为x 的列表,故可以与列表a进行拼接。选项C中与a 拼接的是x,而x是整数不是列表,与a拼接会产生错误。所以应该选C。
(5) 对于图3的Python程序的运行结果,哪个说法是正确的?
图3 Python程序
A Python的实现有错误
B 浮点数无法精确表示
C 布尔运算不能用于浮点数比较
D Python将非0数视为False
答案:B
解析:由于目前使用的计算机是底层是二进制的,而很多十进制的有限小数转换为二进制时会变成无限小数,但是浮点数是有限位数的,这就导致浮点数无法精确表示很多十进制的有限小数。这是目前计算机的工作原理决定的,这个锅不该由Python来背,因此选项A是错误的。应该选B。对此还可以扩展探究,要进行题中类似的判断时,怎样才能使结果为真?
4 效果分析及总结
基于“知识-思维”模型考虑,总体上可以将习题分为两类:代表知识考查的入门基础题和代表思维训练的进阶提高题。入门基础体现全面性,面向基本的Python语言知识,要求是“知其有”;进阶提高体现引导性,面向语言的运用,要求是“尽其用”,力求提升学生运用Python语言解决问题的能力。
参 考 文 献
[1]  2017普通高中信息技术课程标准解读,人民教育出版社,2017.12
[2] (美)约翰·杜威.我们怎样思维——再论反省思维与教学的关系[C]//
吕达、刘立德、邹海燕.杜威教育文集(第五卷).姜文闵译,北京:人民教育出版社,2008:95,96
>>>print(1.2-1==0.2) False

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。