python考后复盘
需要word版的,见文章末尾,免费自提
1、选择题
1、以下选项中,不属于函数的作用的是 ()
A 、提高代码执行速度
B、 降低编程复杂度
C、 增强代码可读性
D、 复用代码
2、关于 Python 语言的注释,以下选项中描述错误的是()
A、Python 语言的单行注释以’开头
B、Python 语言的单行注释以#单引号开头
C、Python 语言的多行注释以"" (三个单引号)开头和结尾
D、Python 语言有两种注释方式:单行注释和多行注释
3、关于 Python 字符串,以下选项中措述错误的是()
A、可以使用 datatype()测试字符串的类型
B、输出带有引号的字符串,可以使用转义字符
C、字符串是一个字符序列,字符串中的编号叫“索引”
D、字符串可以保存在变量中,也可以单独存
4、给出如下代码:
DictColor = {
"seashell":"海贝色","gold":“金色","pink":"粉红色","brown":"棕色","purple":"紫","tomato":"西红柿色"}
以下选项中能输出“海贝色的是
A、print(DictColor. keys)
B、print(DictColor.[“海贝色”])
C、print(DictColor.values()
D、print(DictColr["seashell"])
5、文件 book.txt 在当前程序所在目录内,其内容是一段文本: book, 下面代码的输出结果是
txt = open("book.txt", "r')
print(txt)
txt.close()
A、book.txt
B、txt
C、book
D、以上答案都不对
6 关于 Python 组合数据类型,以下选项中描述错误的是( )
A、Python 的 str、tuple 和 list 类型都属于序列类型
B、Python 组合数据类型能够将多个同类型或不同类型的数据组织起来,通过单一的表示使数据操作更有序、更容易
C、组合数据类型可以分为 3 类:序列类型、集合类型和映射类型
D、序列类型是二维元素向量,元素之间存在先后关系,通过序号访问
7 下面代码的输出结果是 ( )
d ={
"大海":"蓝色", "天空":"灰色", "大地":"黑色"}
print(d["大地"], d.get("大地", "黄色"))
A、黑色 黄色
B、黑色 黑色
C、黑的 灰色
D、黑色 蓝色
8 下面代码的执行结果是:( )
d = {
}
for i in range(26):
d[chr(i+ord("a"))] = chr((i+13) % 26 + ord("a"))
for c in "Python":
print(d.get(c, c), end="")
A、Plguba
B、Cabugl
C、Python
D、Pabugl
9 关于 Python 语言的浮点数类型,以下选项中描述错误的是 ( )
A、Python 语言要求所有浮点数必须带有小数部分
B、浮点数类型与数学中实数的概念一致
C、小数部分不可以为 0
D、浮点数类型表示带有小数的类型
10 关于 Python 程序中与“缩进”有关的说法中,以下选项中正确的是 ()
A、缩进统一为 4 个空格
B、缩进是非强制性的,仅为了提高代码可读性
C、缩进在程序中长度统一且强制使用
D、缩进可以用在任何语句之后,表示语句间的包含关系
11 下面代码的输出结果是 ( )
s = "The python language is a cross platform language."
print(s.find('language',30))
A、11
B、40
C、10
D、报错
12 关于 Python 循环结构,以下选项中描述错误的是 ( )
A、Python 通过 for、while 等保留字ᨀ供遍历循环和无限循环结构
B、break 用来跳出最内层 for 或者 while 循环,脱离该循环后程序从循环代码后继续执行
C、每个 continue 语句只有能力跳出当前层次的循环
D、遍历循环中的遍历结构可以是字符串、文件、组合数据类型和 range()函数等
13 以下选项中描述正确的是 ( )
A、条件 24<=28<25 是不合法的
B、条件 24<=28<25 是合法的,且输出为 True
C、条件 35<=45<75 是合法的,且输出为 False
D、条件 24<=28<25 是合法的,且输出为 False
14 在 Python 中,关于全局变量和局部变量,以下选项中描述不正确的是 ( )
A、一个程序中的变量包含两类:全局变量和局部变量
B、全局变量不能和局部变量重名
C、全局变量一般没有缩进
D、全局变量在程序执行的全过程有效
15 关于 Python 文件打开模式的描述,以下选项中错误的是()
A、只读模式 r
B、追加写模式 a
C、创建写模式 n
D、覆盖写模式 w
改错题
1、修改程序,输入 2 个整数 m,n 求它们的最大公倍数。
【输入】 输入两个整数 m,n
【输出】求两个整数的最大公倍数
m, n = map(int, input().split())
# 使用辗转相除法求最大公约数
while n == 0: # 本行有错
temp = n
n = m % n
m = temp
# 此时m就是最大公约数
print(m)
答案:
m, n = map(int, input().split())
# 使用辗转相除法求最大公约数
while n != 0: # 已修改
temp = n
n = m % n
m = temp
# 此时m就是最大公约数
print(m)
2、修改程序,实现求以 1 到 n 以内(包括 n)的奇数和,错误的位置已在程序中标出。
【输入】 输入 n
【输出】 输出 1-n 以内的奇数和
# 输入 n
n = int(input())
# 初始化奇数和为0
odd_sum = 0
# 遍历1到n之间的每个数
for num in range(1, n + 1):
if num % 2 == 0: # 本行有错
odd_sum += num
# 输出奇数和
print(odd_sum)
答案:
# 输入 n
n = int(input())
# 初始化奇数和为0
odd_sum = 0
# 遍历1到n之间的每个数
for num in range(1, n + 1):
# 判断是否为奇数
if num % 2 != 0: #已修改
odd_sum += num
# 输出奇数和
print(odd_sum)
程序填空题
1、分段函数(表达式忘了,范围是x<-1;-1<= x<=1/2;x>1/2
)
# 输入 x
x = float(input())
# 判断 x 属于哪个区间,并计算相应的函数值
if :#代填处
result = -2 * x
elif : #代填处
result = x + 1
else:
result = 3 * x - 1/2
# 输出结果
print(result)
答案:
# 输入 x
x = float(input())
# 判断 x 属于哪个区间,并计算相应的函数值
if x < -1:
result = -2 * x
elif -1 <= x <= 1/2:
result = x + 1
else:
result = 3 * x - 1/2
# 输出结果
print(result)
2、求解输入的m,n之间的完备数,并打印出来
# 输入 m 和 n
m, n = map(int, input().split())
count = 0
# 遍历 m 到 n 之间的每个数
for i in range(m, n + 1):
divisors = []
# 找到 num 的所有正因子
for j in: # 代填处
if i % j == 0:
divisors.append(j)
# 判断 num 是否为完备数
if sum(divisors) == i:
count += 1
print(i)
if count == 0:
print("None")
答案:
# 输入 m 和 n
m, n = map(int, input().split())
count = 0
# 遍历 m 到 n 之间的每个数
for i in range(m, n + 1):
divisors = []
# 找到 num 的所有正因子
for j in range(1, i):
if i % j == 0:
divisors.append(j)
# 判断 num 是否为完备数
if sum(divisors) == i:
count += 1
print(i)
if count == 0:
print("None")
程序设计题
1、生成数字字典(‘i’:i*i),
输入:3
输出:{‘1’:1,‘2’:4,‘3’:9}
注意输出格式
具体实现
def create_num_dist(nums):
return {
str(num): num * num for num in range(1, nums + 1)}
input_num = int(input())
print(create_num_dist(input_num))
2、单词去重并且排序,以空格隔开的形式输出
输入:word is not words words include word
输出:include is not word words
具体实现
def sorted_words(str_input):
u_words = sorted(set(str_input.split()))
return u_words
text = input()
print(" ".join(sorted_words(text)))
3、凯撒密码
输入:cafd
3
输出:fdgi
具体实现:
def caesar_cipher(text, shift):
result = ""
for i in range(len(text)):
char = text[i]
if char.isupper():
result += chr((ord(char) + shift - 65) % 26 + 65) # 大写'A' -> 65
else:
result += chr((ord(char) + shift - 97) % 26 + 97) # 小写'a' -> 97
return result
input_text = input()
shift = int(input())
print(caesar_cipher(input_text,shift))
4、评分问题(去掉一个最大值和最小值,求平均分),输出保留两位小数
输入:100,95,60,80
输出:87.50
具体实现
input_num = input().split(",")
# 使用推导式
list = [int(x) for x in input_num] # 将num中的每个数字拿出来,并且转换成数字型,将其放在一个列表中
list.remove(min(list))
list.remove(max(list))
# 使用推导式
total = sum(i for i in list)
avr = total / len(list)
print('{:.2f}'.format(avr))
资料自提(若过期,请留言)
链接:https://pan.baidu.com/s/1G7_fdcW1DCkXzjFJiGcMaA?pwd=a8sa
提取码:a8sa