喜欢编程的小伙伴可以点赞收藏哦!!!

第 1 章 初识 Python
1. 高级语言翻译为机器语言的方式有两种:一种是编译,一种是解释。
Python 属于:解释型语言。
2. Python 程序支持两种运行方式:交互式和脚本式。
3. Python 的单行注释以符号#作为开始符,该符号后面的文字都是注释。
4. input 函数的功能是接收标准输入数据(即从键盘输入),返回为 string 类型(字符串)。
5. print 函数的功能是将各种类型的数据(字符串、整数、浮点数、列表、字典等) 输出到屏幕上。
6. IDLE 有两种窗口模式:Shell 和 Editor(编辑器)。
7. 下面不属于 Python 语言优点的是(C)
A. 简单易学
B. 免费开源
C. 强制缩进
D. 丰富的库
8. 有关 Python 的注释叙述正确的是(B)
A. 单行注释以分号“;“开始
B. 多行注释以三个单引号“'''”或三个双引号“"""”作为开始符和结束符
C. 多行注释以三个“#”作为开始符和结束符
D. 注释也是程序代码,参与程序的运行
9. 已知语句:r=eval(input("请输入一个有效的表达式:")),则运行情况错误的是(D)
A. 如果输入“4+7”,通过“print(r)”可得到结果 11
B. 如果输入“4*2.5+10”,通过“print(r)”可得到结果 20
C. 如果输入“5*/3”,则会因其不是一个有效的表达式而报 SyntaxError 错误。
D. 如果输入“3+5”,通过“print(r)”可得到结果 3+5
10. 简述 Python 语言的优点
答:Python 具有简单易学:语法简单、代码量少;免费开源:源代码开放;跨平 台性:可移植到 Linux、Windows、Macintosh、Android 等平台上;高层语言: 忽略底层细节;面向对象:符合人类认识客观世界的方式;丰富的库:提供了内 在标准库以及丰富的第三方库;胶水语言:像使用胶水一样把用其他编程语言编 写的模块粘合过来等优点
11. 简述 Python 在科学计算、数据库编程、Web 编程和人工智能等 4 个领域的应用
答:科学计算:Python 是一门很适合做科学计算的编程语言,从 1997 年开始, NASA 就大量使用 Python 进行各种复杂的科学运算;数据库编程:程序员可通过 遵循 Python DB-API(数据库应用程序编程接口)规范的模块与 Microsoft SQL Server、Oracle、Sybase、DB2、MySQL、SQLite 等数据库通信;Web 开发: Python 拥有很多免费数据函数库、免费 web 网页模板系统以及与 web 服务器进 行交互的库,可以实现 web 开发,搭建 web 框架;人工智能:各种 AI 算法都基 于 Python 编写。在神经网络、深度学习方面,Python 都能够找到比较成熟的包 来加以调用。
第 2 章 Python 的基础语法
1. 变量是指在程序运行过程中值可以发生改变的量。
2. 已知 s="Python 语言程序设计",则 print(s[2:4])的输出结果为 th ,print(s[-4:-2]) 的输出结果为程序。
3. 已知 t=(3.5, 2, 'abcd', 4+5j, True, [3,3.5], 5.3),print(t[3])的输出结果为:4+5j, print(t[-3])的输出结果为:True。
4. 10/4 的结果为 2.5,10//4 的结果为 2 ,10%4 的结果为 2 ,10**4 的结果为 10000 。
5. 已知 x=50,则 10<=x and x<=30 的结果为 False 。
6. 已知 x,y=4,5,则 x|y 的结果为 5 ,x^y 的结果为 1 。
7. 下面选项中,正确变量名是(C)
A. 2sum
B. for
C. 圆面积 2
D. it is
8. 执行 Python 语句 name,age=’张三’,20 之后,下面说法正确的是(C)
A. name 的值为“张三”,age 的值为 20,两个变量的类型不一定
B. 程序报错,因为两个变量没有定义,不能直接赋值
C. 定义两个变量,name 是字符串类型,值为“张三”,age 是整型,值为 20
D. 不能同时给两个变量赋值,程序报错
9. 已知语句:a,b,c=12,0o12,0x12,则 print(a,b,c)输出结果是(A)
A. 12 10 18
B. 12 12 12
C. 10 8 16
D. 12 18 10
10. 已知:a={10, 2.5, 'test', 3+4j, True, 5.3, 2.5},则 print(a)输出结果是(B)
A. {10, 2.5, 'test', 3+4j, True, 5.3, 2.5}
B. { True, 2.5, 5.3, 10, 3+4j, 'test'}
C. 10 2.5 'test' 3+4j True 5.3 2.5
D. True 2.5 5.3 10 3+4j 'test'
11. print(“姓名:%5s,年龄:%5d,成绩:%6.2f”%(“tom”,19,86.5))的输出结 果是(D)(□表示一个空格)
A. 姓名:tom,年龄:19,成绩:86.5
B. 姓名: tom□□,年龄: 19□□□,成绩: 86.50□
C. 姓名:□□tom,年龄:□□□19,成绩:86.5
D. 姓名:□□tom,年龄:□□□19,成绩:□86.50
12. 已知 x,y=10,[10,20,30],则 x is y 和 x in y 的结果分别为(D)
A. True True
B. False False
C. True False
D. False True
13. 写出下面程序的运行结果。 s1,s2="abc","def"
z1,z2=[1,2,"zhang"],[2.2,3.3,"wang"]
x1=[1, 2.5, 'test', 3+4j, True, [3,1.63], 5.3]
print(s1+s2)
print(z1+z2)
print(s1*3)
print(z1[:])
print(x1[:3])
print(x1[3:-1])
答:运行结果为:
abcdef [1, 2, 'zhang', 2.2, 3.3, 'wang']
abcabcabc
[1, 2, 'zhang']
[1, 2.5, 'test']
[(3+4j), True, [3, 1.63]]
14. 已知程序段的功能是:用户输入数字 1 至 7,输出对应的星期几的字符串,如输入 4,输出星期四。请将程序填写完整。
week="星期一星期二星期三星期四星期五星期六星期日"
n=eval( input ("请输入星期数字(1 至 7)"))
pos=(n-1)*3 print(week[pos: pos+3 ])
15. 通过设置条件,可以使得某些语句在条件满足时才会执行。
16. 通过循环,可以使得某些语句重复执行多次。
17. 下面程序段循环次数:11,循环结束后 i 的值是-1。
i=10
while i>=0:
i-=1
print(i)
18. 已知程序段:
score=eval(input('请输入成绩(0~100 之间的整数):'))
if score<60:
print('不及格')
elif score<70:
print('及格')
elif score<80:
print('中等')
elif score<90:
print('良好')
elif score<=100:
print('优秀')
若输入 77,则输出结果为:中等 。
19. 已知程序段:
score=eval(input('请输入成绩(0~100 之间的整数):'))
if score<60:
print('你的成绩是%d'%score) print('不及格')
若输入 55,则输出结果是(A)
A. 你的成绩是 55
不及格
B. 你的成绩是 55
C. 不及格
D. 无输出
20. 已知程序段:
score=eval(input('请输入成绩(0~100 之间的整数):'))
if score>=60:
pass else: print('不及格')
若输入 55,则输出结果为(B)
A. 无输出
B. 不及格
C. pass
D. 程序报错
21. 已知程序段:
n=eval(input('请输入一个整数:'))
if n%2==0:
print("偶数")
else:
print("奇数")
若输入-5,则输出结果是(B)
A. 无输出
B. 奇数
C. 偶数
D. 偶数
22. 已知语句段:
d={'Python':1,'C++':2,'Java':3}
for k in d:
print('%s:%d'%(k,d[k]))
输出结果是(C)
A. Python
C++
Java
B.
1:Python
2:C++
3:Java
C. Python:1
C++:2
Java:3
D. 以上都不对
23. 下面程序段的输出结果是(D)
ls=['Python','C++','Java']
for k,v in enumerate(ls,3):
print(k,v)
A. Python
C++
Java
B. 1 Python
2 C++
3 Java
C. Python 1
C++ 2
Java 3
D. 3 Python
4 C++
5 Java
24. 已知程序段的功能是:用户输入数字 n,利用 for 循环求 n!。请将程序填写完整。 n=eval(input('请输入一个大于 0 的整数:'))
s= 1
for i in range(1, n+1 ):
s= s*i
print(s)
25. 下面程序的功能是求 100 以内能被 7 整除的最大整数,请将程序填写完整。
n=100
while n>=0:
if n%7==0:
print(n)
break
n-=1
26. 判断素数的程序,请将程序填写完整。
for n in range (2,101):
m=int(n**0.5)
i=2
while i<=m
if n%i==0:
break
i+=1
if i>m:
print(n,end=' ')
27. 水仙花数是三位整数(100~999),它的各位数字立方和等于该数本身。下面程序 求水仙花数,请写出程序运行结果。
for n in range(100,1000):
bai=n//100
shi=n//10%10
ge=n%10
if bai**3+shi**3+ge**3==n:
print(n)
结果为:
153
370
371
407
28. 下面程序输出九九乘法表,请将程序补充完整。
for i in range(1,10):
for j in range(1,i+1):
print(j,"*",i,"=",i*j,end=' ')
print('\n')

第 3 章 函数
1. Python 语言中使用函数分为两个步骤:定义函数和调用函数。
2. Python 语言中函数定义需要使用 def 关键字。
3. 形参是定义函数时函数名后面的一对小括号中给出的参数列表。
4. 实参是在调用函数时函数名后面的一对小括号中给出的参数列表。
5. 能够将一个函数的运算结果返回到调用函数的位置,以使得可以继续用该运算结 果再去参与其他运算,此时则应使用 return 语句。
6. 使用 import 将整个模块导入,也可以使用 from import 将模块中的标识符直接 导入当前环境。
7. 可以使用 from 模块名 import * 的方式导入一个模块中的所有标识符。
8. 定义一个包,就是创建一个文件夹并在该文件夹下创建一个__init__.py 文件,文 件夹的名字就是包名。
9. 猴子补丁是指在运行时动态替换已有的代码,而不需要修改原始代码。
10. 下列说法中错误的是(B)
A. 当调用函数时,如果没有为某些形参传递对应的实参,则这些形参会自动使用 默认参数值 B. 在使用关键字参数调用函数时,实参的传递顺序可以与形参列表中形参的顺序 必须一致
C. 当普通实参传递给形参后,如果在函数体中对形参值做修改,则该修改并不会 影响实参,即实参值不会改变。
D. 如果实参是列表等对象时,可在函数体中通过形参修改实参列表中对应元素的值。
11. 下列关于拆分参数列表的说法正确的是(A)
A. 列表、元组拆分出来的结果作为位置参数,字典拆分出来的结果作为关键字参数
B. 列表、元组和字典拆分出来的结果都作为关键字参数
C. 列表、元组和字典拆分出来的结果都作为位置参数
D. 列表、元组拆分出来的结果作为关键字参数,而字典拆分出来的结果作为位置参数
12. 写出下面程序段的输出结果。
def ModifyVal(x,y):
z=x
x=y
y=z
def ModifyListElement(ls,idx,val):
ls[idx]=val
a,b=3,5
print(a,b)
ModifyVal(a,b)
print(a,b)
c=[7,8,9]
print(c)
ModifyListElement(c,1,6)
print(c)
答:运行结果为:
3 5
3 5
[7, 8, 9]
[7, 6, 9]
13. 写出下面程序段的输出结果。
def CircleInfo(radius, color='red'):
print('半径:%d,颜色:%s'%(radius,color))
CircleInfo(10)
CircleInfo(20, color='green')
CircleInfo(color='blue', radius=30)
答:运行结果为:
半径:10,颜色:red
半径:20,颜色:green
半径:30,颜色:blue
14. 函数 Sum 的功能是求参数的和并返回,参数个数不限。请将程序填写完整。
def Sum(*args):
s=0
for i in args :
s+=i
return s
print(Sum(1,2,3,4,5))
15. 已知模块文件 arithmetic.py 的内容为:
def plus(x,y):
return x+y
def multi(x,y):
return x*y
编写程序,将模块导入,调用其中的函数,请将程序填写完整。
使用 import 导入:
import arithmetic
print(arithmetic.plus(3,5))
print(arithmetic.multi(5,6))
使用 from import 依次导入标识符:
from arithmetic import plus,multi
print(plus(3,5))
print(multi(5,6))
使用 from import 所有标识符:
from arithmetic import *
print(plus(3,5))
print(multi(5,6))
16. 按照作用域的不同,Python 中的变量可以分为局部变量和全局变量。
17. 在一个函数中使用 global 关键字,可以声明在该函数中使用的是全局变量、而非 局部变量。
18. 通过 nonlocal 关键字,可以使内层的函数直接使用外层函数中定义的变量。
19. 递归 函数是指在一个函数内部通过调用自己来完成一个问题的求解。
20. lambda 函数也称为匿名函数,是一种不使用 def 定义函数的形式,其作用是能 快速定义一个简短的函数。
21. lambda 函数的函数体只是一个表达式,所以 lambda 函数通常只能实现比较简单 的功能。
22. 如果内层函数使用了外层函数中定义的局部变量,并且外层函数的返回值是内层 函数的引用,就构成了 闭包 。
23. 下列说法中错误的是(D)
A. 在一个函数中定义的变量就是局部变量
B. 局部变量的作用域是从定义位置到函数结束位置
C. 在所有函数外定义的变量就是全局变量
D. 全局变量的作用域是从定义位置到程序结束位置
24. 下列关于装饰器的说法错误的是(C)
A. 利用装饰器,可以在不修改已有函数的情况下向已有函数中注入代码,使其具 备新的功能
B. 一个装饰器可以为多个函数注入代码,一个函数也可以注入多个装饰器的代码
C. 一个装饰器可以为多个函数注入代码,而一个函数只能注入一个装饰器的代码
D. 装饰器实际上就是一种闭包
25. 写出下面程序的输出结果。
def outer():
x=100
global y
y=200
def inner():
nonlocal x
x=1000
y=2000
print('inner 函数中的 x,y 值为:',x,y)
inner()
print('outer 函数中的 x,y 值为:',x,y)
x=10
y=20
outer()
print("执行 outer,inner 函数之后 x,y 值为:",x,y)
答:输出结果为:
inner 函数中的 x,y 值为: 1000 2000
outer 函数中的 x,y 值为: 1000 200
执行 outer,inner 函数之后 x,y 值为: 10 200
26. 写出下面闭包程序的输出结果。
def f(x):
y = 100
def inner(z):
return x * y + z
return inner
a10 = f(10)
a20 = f(20)
print(a10(29))
print(a20(29))
答:程序运行结果为:
1029
2029
27. 已知高阶函数的程序如下:
def FunAdd(f,x):
return f(x)
def area(r):
return 3.14*r*r
def perimeter(r):
return 2*3.14*r
print(FunAdd(area,5))
print(FunAdd(perimeter,5))
请将其中的 area 函数和 perimeter 函数改写为 lambda 函数。请将改写后的 程序填写完整。
def FunAdd(f,x):
return f(x)
print(FunAdd(lambda r:3.14*r*r,5))
print(FunAdd(lambda r:2*3.14*r,5))
28. 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家列昂纳多·斐 波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数 列”。斐波那契数列前两项的值都为 1,后面每一项的值等于其前两项的和,即: F(1)=F(2)=1,F(n)=F(n-1)+F(n-2)(n>2)。请编写递归函数 fib(n),实现求斐波 那契数列第 n 项的值。
参考程序如下:
def fib(n):
if n==1 or n==2:
return 1
return fib(n-1)+fib(n-2)