《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是两个集合,并且表达式A<B的值为False,那么表达式A>B的值一定为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、编写程序,用户从键盘输入小于1000的正整数,对其进行因数分解并输出分解的结果,例如10=2x5,60=2x2x3x5。

2、编写程序,输出所有由1、2、3、4这4个数字组成的素数,要求在每个素数中每个数字最多只能使用一次。

第五章 函数

单元测验题目

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、编写函数,接收一个任意字符串,返回其中最长的数字字串。要求使用正则表达式。