《Python程序设计基础》课程导学
单元测验
1、下面属于Python应用领域的有?
A、数据分析
B、云计算
C、开发操作系统
D、网络安全
E、树莓派
F、数据可视化
2、在Windows平台上编写的Python程序无法在Unix平台运行。
单元作业
1、详细描述自己所了解的Python应用领域。
第一章 Python语言概述
单元测验
1、下面哪几个是Python语言的特点?
A、开源
B、免费
C、跨平台
D、动态编程语言
2、下面哪几个语句执行之后可以直接使用sin(3)来计算3的正弦值?
A、from math import sin
B、from math import *
C、import math.sin
D、import math.sin as sin
3、下面哪几个软件可以用来编写和运行Python程序?
A、IDLE
B、Jupyter Notebook
C、PyCharm
D、Spyder
E、VS Code
4、Python程序只能使用源代码进行运行,不能打包成可执行文件。
5、对于Python程序的代码来说,缩进是硬性要求,如果缩进错了,可能会导致程序无法运行或运行结果错误。
6、pip命令也支持扩展名为.whl的文件直接安装Python扩展库。
7、只有Python扩展库才需要导入以后才能使用其中的对象,Python标准库不需要导入即可使用其中的所有对象和方法。
8、Python使用缩进来体现代码之间的逻辑关系。
9、Python标准库math中sin()函数的参数单位是角度还是弧度?
10、执行语句from math import gcd之后,表达式gcd(36, 8)的值是什么?
单元作业
1、1)安装Python;2)安装扩展库openpyxl和numpy;3)启动IDLE并导入这两个扩展库,成功之后把第2步和第3步的成功界面截图作为作业上传。
第二章 运算符、表达式与内置对象
单元测验题目
1、Python变量使用前必须先声明,并且一旦声明就不能再当前作用域内改变其类型。
2、Python不允许使用关键字作为变量名,允许使用内置函数名作为变量名,但这会改变函数名的含义。
3、在Python中可以使用if作为变量名。
4、加法运算符可以用来连接字符串并生成新字符串。
5、在Python中可以使用 id 作为变量名,但是不建议这样做。
6、在Python中可以使用 for 作为变量名。
7、在Python 3.x中,使用内置函数input()接收用户输入时,不论用户输入的什么格式,一律按字符串进行返回。
8、集合支持双向索引,-1表示最后一个元素的下标。
9、已知x为非空列表,那么表达式 sorted(x, reverse=True) == list(reversed(x)) 的值一定是True。
10、Python字典中的“值”不允许重复。
11、Python语句list(range(1,10,3))执行结果为___________________。
12、表达式 int('123', 16) 的值为_________。
13、表达式 int('123', 8) 的值为_________。
14、表达式 min(['11', '2', '3']) 的值为_________________。
15、表达式 3<5>2 的值为_______________。
16、表达式int(4**0.5)的值为____________。
17、表达式8 ** (1/3)的值为_____________。
18、已知 x = 3,那么执行语句 x += 6 之后,x的值为_______________。
19、表达式 abs(3+4j) 的值为____________。
20、表达式16**0.5的值为____________________。
21、表达式1 < 2 == 2的值为____________。
22、表达式eval('3*2'+'22')的值为_________。
23、已知x = [1, 2]和y = [3, 4],那么x+y的结果是?
24、已知x = [1, 2, 3],那么x*3的值为?
25、表达式 type('3') in (int, float, complex) 的值为____________。
单元作业
1、编写程序,运行后输入任意长度正整数,然后输出每位上的数字,并且使用英文逗号分隔。例如输入123,输出1,2,3
第三章 Python序列结构
单元测验题目
1、同一个集合中的元素都是唯一的,不会存在重复的元素。
2、集合支持双向索引,-1表示最后一个元素的下标。
3、列表可以作为字典的“键”。
4、已知A和B是两个集合,并且表达式AB的值一定为True。
5、对于列表而言,在尾部追加元素比在中间位置插入元素速度更快一些,尤其是对于包含大量元素的列表。
6、假设x为列表对象,那么x.pop()和x.pop(-1)的作用是一样的。
7、使用列表对象的remove()方法可以删除列表中指定元素的所有出现,如果列中不存在要删除的指定元素则抛出异常。
8、无法删除集合中指定位置的元素,只能删除特定值的元素。
9、假设x是含有5个元素的列表,那么切片操作x[10:]是无法执行的,会抛出异常。
10、表达式 {1, 3, 2} > {1, 2, 3} 的值为True。
11、list(map(str, [1, 2, 3]))的执行结果为_____________________。
12、语句x = 3==3, 5执行结束后,变量x的值为_____________。
13、表达式[3] in [1, 2, 3, 4]的值为________________。
14、表达式list(range(10, 1, -3))的值为_________________。
15、表达式sorted([1, 2, 3], reverse=True) == reversed([1, 2, 3])的值为_________。
16、表达式 {1:'a', 2:'b', 3:'c'}.get(4, 'd') 的值为___________。
17、表达式 {1, 2, 3, 4} - {3, 4, 5, 6}的值为__________________。
18、已知 x = [3, 5, 7],那么表达式 x[10:]的值为____________。
19、已知 x = [3, 7, 5],那么执行语句 x = x.sort(reverse=True)之后,x的值为_________。
20、已知 x = [1, 2, 3, 2, 3],执行语句 x.pop(0) 之后,x的值为_____________。
单元作业
1、编写程序,生成包含1000个0~100之间的随机整数,统计并输出每个整数出现的次数。
2、编写程序,设计一个字典,然后接收用户输入,把用户输入的内容作为“键”,输出该“键”在字典中对应的值,如果用户输入的“键”不存在,则输出“您输入的键不存在!”。
第四章 程序控制结构
单元测验题目
1、在Python中,关系运算符可以连续使用,例如1<3<5等价于1<3 and 3<5。
2、Python关键字and和or连接多个表达式时具有惰性求值特点,只计算必须计算的表达式。
3、在没有导入标准库math的情况下,语句x = 3 or math.sqrt(9)也可以正常执行,并且执行后x的值为3。
4、在没有导入标准库math的情况下,语句x = 3 and math.sqrt(9)也可以正常执行,并且执行后x的值为3。
5、如果仅仅是用于控制循环次数,那么使用for i in range(20)和for i in range(20, 40)的作用是等价的。
6、带有else子句的循环如果因为执行了break语句而退出的话,则会执行else子句中的代码。
7、对于带有else子句的循环语句,如果是因为循环条件表达式不成立而自然结束循环,则执行else子句中的代码。
8、在条件表达式中不允许使用赋值运算符“=”,会提示语法错误。
9、表达式 3<5>2 的值为_______________。
10、已知 x = {'a':'b', 'c':'d'},那么表达式 'b' in x 的值为______________。
11、表达式 3 or 5 的值为________。
12、表达式 3 and not 5 的值为______________。
13、表达式 5 if 5>6 else (6 if 3>2 else 5) 的值为_________。
14、表达式 'ac' in 'abce' 的值为_____________。
15、Python 3.x语句 print(1, 2, 3, sep=',') 的输出结果为________________。
16、表达式 0 or 5 的值为________。
第五章 函数
单元测验题目
1、下面用来定义函数的关键字是哪个?
A、class
B、function
C、def
D、define
2、在Python中,使用关键字define定义函数。
3、编写函数时,一般建议先对参数进行合法性检查,然后再编写正常的功能代码。
4、一个函数如果带有默认值参数,那么必须所有参数都设置默认值。
5、在Python中,不能在一个函数的定义中再定义一个嵌套函数。
6、定义Python函数时必须指定函数返回值类型。
7、如果在函数中有语句 return 3,那么该函数一定会返回整数3。
8、函数内部定义的局部变量当函数调用结束后被自动删除。
9、在函数内部没有办法定义全局变量。
10、调用带有默认值参数的函数时,不能为默认值参数传递任何值,必须使用函数定义时设置的默认值。
11、在Python中定义函数时不需要声明函数参数的类型。
12、已知有函数定义 def demo(*p):return sum(p),那么表达式 demo(1, 2, 3, 4) 的值为_________。
13、如果函数中没有return语句或者return语句不带任何返回值,那么该函数的返回值为_________________。
14、表达式 list(map(lambda x: x+5, [1, 2, 3, 4, 5])) 的值为________________。
15、表达式 list(filter(None, [0,1,2,3,0,0])) 的值为___________________。
16、表达式 list(filter(lambda x:x>2, [0,1,2,3,0,0])) 的值为_________。
17、表达式 list(filter(lambda x: len(x)>3, ['a', 'b', 'abcd'])) 的值为___________。
18、已知 g = lambda x, y=3, z=5: x*y*z,则语句 print(g(1)) 的输出结果为_______。
19、已知 g = lambda x, y=3, z=5: x*y*z,则语句 print(g(1, 2)) 的输出结果为_______。
20、已知函数定义def demo(x, y, op):return eval(str(x)+op+str(y)),那么表达式demo(3, 5, '+')的值为______________________。
21、依次执行语句x=3,def modify():x=5,和modify()之后,x的值为_____________。
单元作业
1、编写函数,接收一个字符串,分别统计大写字母、小写字母、数字、其他字符的个数,以元组的形式返回结果,最后调用这个函数并传递参数,输出函数的返回结果。要求不是大写字母、小写字母、数字的任意字符都记入其他字符的个数。
2、编写函数myReversed(),模拟内置函数reversed()功能。
第六章 面向对象程序设计
单元测验题目
1、在Python中定义类时,如果某个成员名称前有2个下划线则表示是私有成员。
2、在类定义的外部没有任何办法可以访问对象的私有成员。
3、定义类时所有实例方法的第一个参数用来表示对象本身,在类的外部通过对象名来调用实例方法时不需要为该参数传值。
4、在面向对象程序设计中,函数和方法是完全一样的,都必须为所有参数进行传值。
5、对于Python类中的私有成员,可以通过“对象名._类名__私有成员名”的方式来访问。
6、在Python中定义类时实例方法的第一个参数名称不管是什么,都表示对象自身。
7、在Python中可以为自定义类的对象动态增加新成员。
8、Python中的一切内容都可以称为对象,函数也是对象,类也是对象。
9、类的静态方法和类方法也可以直接访问类的数据成员和成员方法。
10、Python使用_________________关键字来定义类。
11、定义类时,________________(必须、不必须?)指定基类。
12、定义类时,如果在某个成员方法的定义之前加上修饰器@property,则表示这是一个_____________。
13、Python_______(支持、不支持?)多继承。
14、在Python中,不管类名是什么,构造方法的名字都是___________。注意不要忘记名字后面要加上英文半角圆括号。
15、通过对象名________(可以、不可以?)调用所属类的静态方法和类方法。
16、面向对象程序设计OOP这三个字母是哪三个单词的缩写?注意每个单词的首字母要大写,并且相邻两个单词之间使用一个空格分隔。
17、通过对象______(可以、不可以?)直接访问对象的公有成员。
18、如果暂时没有想好类的实现,可以使用关键字_________作为占位符。
单元作业
1、解释数据成员、成员方法、属性之间的区别。
第七章 字符串
单元测验题目
1、在GBK和CP936编码中一个汉字需要2个字节。
2、Python字符串方法replace()对字符串进行原地修改。
3、如果需要连接大量字符串成为一个字符串,那么使用字符串对象的join()方法比运算符+具有更高的效率。
4、已知x为非空字符串,那么表达式 ''.join(x.split()) == x 的值一定为True。
5、已知x和y是两个字符串,那么表达式sum((1 for i,j in zip(x,y) if i==j))可以用来计算两个字符串中对应位置字符相等的个数。
6、Python 3.x中字符串对象的encode()方法默认使用utf8作为编码方式。
7、已知x = 'Python是一种非常好的编程语言'.encode(),那么表达式x.decode('gbk')的值为'Python是一种非常好的编程语言'。
8、已知x = 'hellow world.'.encode(),那么表达式x.decode('gbk')的值为'hellow world.'。
9、已知x为非空字符串,那么表达式 ','.join(x.split(',')) == x 的值一定为True。
10、表达式'abcdefg'[20:]的值为空字符串。
11、表达式 'abc' in ('abcdefg') 的值为______________。
12、表达式 'abc' in ['abcdefg'] 的值为______________。
13、已知列表对象x = ['11', '2', '3'],则表达式 max(x) 的值为___________。
14、表达式 min(['11', '2', '3']) 的值为_________________。
15、表达式 list(str([1,2,3])) == [1,2,3] 的值为______________。
16、表达式 'abcabcabc'.rindex('abc') 的值为____________。
17、表达式 'Hello world. I like Python.'.rfind('python') 的值为________。
18、表达式 r'c:\windows\notepad.exe'.endswith(('.jpg', '.exe')) 的值为_______。
19、表达式 ''.join('asdssfff'.split('sd')) 的值为____________。
20、表达式 'abcab'.replace('a','yy') 的值为___________。
单元作业
1、编写函数,接收一段英文文本,该文本中有个单独的字母I误写为小写i,该函数将该字母改为大写字母I并返回结果字符串,要求不能改变其他字母的大小写。例如,函数接收'i am a boy.',返回'I am a boy.',接收'a b,c i'则返回'a b,c I',接收'a B i c'则返回'a B I c'。
第八章 正则表达式
单元测验题目
1、使用正则表达式对字符串进行分割时,可以指定多个分隔符,而字符串对象的split()方法无法做到这一点。
2、正则表达式模块re的match()方法是从字符串的开始匹配特定模式,而search()方法是在整个字符串中寻找模式,这两个方法如果匹配成功则返回match对象,匹配失败则返回空值None。
3、正则表达式元字符“^”一般用来表示从字符串开始处进行匹配,用在一对方括号中的时候则表示反向匹配,不匹配方括号中的字符。
4、正则表达式'^\d{18}|\d{15}$'只能检查给定字符串是否为18位或15位数字字符,并不能保证一定是合法的身份证号。
5、正则表达式'[^abc]'可以一个匹配任意除'a'、'b'、'c'之外的字符。
6、假设正则表达式模块re已正确导入,那么表达式''.join(re.findall('\d+', 'abcd1234'))的值为_____________________。
7、假设正则表达式模块re已正确导入,那么表达式re.sub('(.\s)\\1+', '\\1','a a a a a bb')的值为________________________。
8、为了避免正则表达式元字符和转义字符有冲突,在编写正则表达式时一般建议在前面加上小写字母_______表示原始字符串,所有字符都不进行转义。
9、正则表达式模块re的______________方法用来在字符串开始处进行指定模式的匹配,只需要给出方法名称,不用加后面的圆括号。
10、正则表达式模块re的______________方法用来在整个字符串中进行指定模式的匹配,只需要给出方法名称,不要加后面的圆括号。
单元作业
1、编写函数,接收一个任意字符串,返回其中最长的数字字串。要求使用正则表达式。
第九章 文件内容操作
单元测验题目
1、使用内置函数open()打开文件时,只要文件路径正确就总是可以正确打开的。
2、二进制文件不能使用记事本程序打开。
3、二进制文件也可以使用记事本或其他文本编辑器打开,但是一般来说无法正常查看其中的内容。
4、以写模式'w'打开的文件无法进读操作。
5、以追加模式打开文件时,文件指针指向文件尾。
6、Python的主程序文件python.exe属于二进制文件。
7、使用pickle进行序列化得到的二进制文件使用struct也可以正确地进行反序列化。
8、对字符串信息进行编码以后,必须使用同样的或者兼容的编码格式进行解码才能还原本来的信息。
9、Python内置函数_____________用来打开或创建文件并返回文件对象,只给出函数名称即可,不要加后面的圆括号。
10、Python内置函数open()的参数_______________用来指定打开文本文件时所使用的编码格式。
11、使用上下文管理关键字______________可以自动管理文件对象,不论何种原因结束该关键字中的语句块,都能保证文件被正确关闭。
12、对于文本文件,使用Python内置函数open()成功打开后返回的文件对象___________(可以、不可以?)使用for循环直接迭代。
13、Python扩展库_____________支持Excel 2007或更高版本文件的读写操作。
14、使用Python读写Word 2007文件,需要安装_________________扩展库。
15、已知当前文件夹中有纯英文文本文件readme.txt,请填空完成功能把readme.txt文件中的所有内容复制到dst.txt中,with open('readme.txt') as src, open('dst.txt', ____________) as dst:dst.write(src.read())。
16、Python标准库pickle中的__________函数用来把Python对象序列化并写入文件,只需要给出函数名称即可,不要加后面的圆括号。