python考试1

Python选择题解析

一、单选题

Python选择题解析博客

1. 下列选项中,不能作为Python程序中变量名的是?

A. N3sum
B. for
C. m_1
D. info2

正确答案: B

解析:在Python中,for 是一个关键字,用于循环结构,因此不能用作变量名。其他选项均符合Python变量名的命名规则。


2. 下列关于说法中,选项错误的是________。

A. 集合一旦创建就不可以改变其元素
B. 元组是一种序列结构
C. 可以对列表进行索引或者切片操作
D. 列表中的元素可以为不同的数据类型

正确答案: A

解析:集合(set)在Python中是一个无序且不重复的元素集,它支持添加和删除元素(通过集合的方法,而不是直接修改),但通常不认为它是不可变的。元组(tuple)是一种有序且不可变的序列结构。列表(list)支持索引和切片操作,并且其元素可以是不同类型的数据。


3. 元组的特征是

A. 有序,可变
B. 有序,不可变
C. 无序,可变
D. 无序,不可变

正确答案: B

解析:元组(tuple)在Python中是一个有序且不可变的序列结构。它支持索引和切片操作,但不能修改其元素。


4. random库的seed(a)函数的作用是

A. 生成一个[0.0, 1.0)之间的随机小数
B. 生成一个k比特长度的随机整数
C. 生成一个随机整数
D. 设置初始化随机数种子a

正确答案: D

解析random.seed(a) 函数用于设置随机数生成器的种子,使得每次使用相同的种子时,生成的随机数序列是相同的。它并不直接生成随机数。


5. python3.版本内存的默认编码方式为

A. ASCII码
B. GBK
C. UNICODE
D. UTF-8

——正确答案: C(但注意,实际存储文件时常用UTF-8)

解析:Python 3.x版本的内存中默认使用Unicode编码来处理字符串,以支持多语言文本。但在存储文件时,通常使用UTF-8编码,因为它是一种广泛使用的、兼容Unicode的编码方式。


6. 下面代码的输出结果是

1
2
z = 12.12 + 34j
print(z.real)

A. 12.12
B. 34.0
C. 12
D. 34

正确答案: A

解析z.real 获取复数 z 的实部,即 12.12


7. Python语言提供的3个基本数字类型是

A. 整数类型、浮点数类型
B. 整数类型、浮点数类型、复数类型
C. 整数类型、二进制类型、浮点数类型
D. 整数类型、二进制类型、复数类型

正确答案: B

解析:Python提供了三种基本的数字类型:整数(int)、浮点数(float)和复数(complex)。


8. 在读写文件之前,用于创建文件对象的函数是

A. open
B. create
C. file
D. folder

正确答案: A

解析:在Python中,open 函数用于打开一个文件,并返回一个文件对象,用于后续的读写操作。


9. 给出如下代码 s = 'Python is beautiful!' 可以输出“python”的是

A. print(s[0:7])
B. print(s[:–14])
C. print(s[–21: –14].lower)
D. print(s[0:7].lower())

正确答案: D

解析:选项D中的 s[0:7].lower() 会截取字符串的前7个字符(即”Python “),并将其转换为小写(虽然在这个例子中,”Python “已经是小写了,但.lower()方法不会改变它),然后打印出来。选项A会打印出”Python “(注意有空格),选项B和C的索引范围是错误的。


10. 以下选项中,不是建立字典的方式是

A. d = {1:[1,2], 3:[3,4]}
B. d = {'张三':1, '李四':2}
C. d = {(1,2):1, (3,4):3}
D. d = {[1,2]:1, [3,4]:3}

正确答案: D

解析:在Python中,字典的键必须是不可变的类型,如整数、浮点数、字符串或元组。列表是可变的,因此不能作为字典的键。


11. 以下选项中,不是Python对文件的读操作方法的是

A. read
B. readline
C. readlines
D. readtext

正确答案: D

解析readreadlinereadlines 都是Python中用于读取文件内容的方法。readtext 不是Python标准库中的方法。


12. 关于赋值语句,以下选项中描述错误的是

A. 在Python语言中,“=”表示赋值,即将“=”右侧的计算结果赋值给左侧变量,包含“=”的语句称为赋值语句。
B. 在Python语言中,有一种赋值语句,可以同时给多个变量赋值。
C. 设x = “alice”;y = “kate” ,执行“x,y = y,x”可以实现变量x和y值的互换。
D. 设a = 10;b = 20,执行“a,b = a,a + b;print(a,b)” 和 “a = b;b = a + b;print(a,b)”之后,得到同样的输出结果:10 30。

正确答案: D

解析:选项D中的两个语句块不会得到相同的输出结果。第一个语句块“a,b = a,a + b;print(a,b)”会先计算a, a+b(即10, 30),然后将10赋值给a30赋值给b,打印出10 30。而第二个语句块“a = b;b = a + b;print(a,b)”会先将b的值(20)赋给a,然后计算a+b(即20+20=40)并赋值给b,打印出20 40


13. 以下关于Python字符串的描述中,错误的是

A. 字符串是用一对双引号” “或者单引号’ ‘括起来的零个或者多个字符。
B. 字符串是字符的序列,可以按照单个字符或者字符片段进行索引。
C. 字符串包括两种序号体系:正向递增和反向递减。
D. Python字符串提供区间访问方式,采用[N:M]格式,表示字符串中从N到M的索引子字符串(包含N和M)。

正确答案: D

解析:Python字符串的区间访问方式[N:M]表示从索引N开始到索引M-1的子字符串(包含N,不包含M)。


14. 以下不能实现将变量a的值增加1的是_______。

A. a=a+1
B. a+=1
C. a+1
D. a=a+int('1')

正确答案: C

解析:选项C中的a+1只是计算了a加1的结果,但并没有将结果赋值给a,因此a的值不会改变。


15. 以下Python注释代码,不正确的是

A. #Python注释代码
B. #Python注释代码1 #Python注释代码2
C. """Python文档注释"""
D. //Python 注释代码

正确答案: D

解析:在Python中,单行注释使用#,多行注释可以使用连续的单行注释或者使用三重引号"""(通常用于文档字符串)。//不是Python中的注释符号。


16. `f=open(B 【答案: B】) 可以打开一个文件,关于f的描述错误的是______

A. 执行 m=f 后,mf 同时表示所打开文件
B. f 是一种特殊的 Python 变量,执行 print(f) 时会报错
C. f 是文件对象引用,在程序中表示文件
D. f.read() 可以一次性读入文件全部信息

正确答案: B

解析

  • 选项A:在Python中,变量可以被赋值和传递。执行 m=f 后,mf 都会引用同一个文件对象,因此它们都可以用来操作该文件。
  • 选项B:f 是一个普通的Python变量,它引用了通过 open() 函数打开的文件对象。执行 print(f) 不会报错,而是会输出文件对象的表示(通常是一个包含文件路径和模式的字符串)。
  • 选项C:f 是通过 open() 函数打开的文件对象的引用,它代表了该文件,并允许你进行读写操作。
  • 选项D:f.read() 是一个文件方法,它会读取文件的全部内容并返回一个字符串。

17. 关于Numpy的random模块,描述错误的是

A. np.random.random(100) 生成100以内的随机小数。
B. np.random.rand(10,5) 生成服从均匀分布的10行5列的二维随机数
C. np.random.randn(10,5) 生成服从正态分布的10行5列的二维随机数
D. np.random.randint(2,10,size=[2,5]) 创建一个最小值不低于2、最大值不高于10的2行5列数组

正确答案: A

解析

  • 选项A:np.random.random(100) 生成的是100个在 [0.0, 1.0) 区间内的随机小数,而不是100以内的随机小数。
  • 选项B:np.random.rand(10,5) 生成的是一个10行5列的二维数组,数组中的每个元素都是从 [0.0, 1.0) 区间内均匀分布的随机数。
  • 选项C:np.random.randn(10,5) 生成的是一个10行5列的二维数组,数组中的每个元素都是从标准正态分布(均值为0,标准差为1)中抽取的随机数。
  • 选项D:np.random.randint(2,10,size=[2,5]) 生成的是一个2行5列的数组,数组中的每个元素都是从 [2, 10) 区间内的整数中随机抽取的。

18. 以下选项中,不是Python对文件的读操作方法的是

A. readlines
B. readline
C. readtext
D. read

正确答案: C

解析

  • 选项A:readlines() 方法读取文件中的所有行,并将它们作为字符串列表返回。
  • 选项B:readline() 方法读取文件中的一行,并返回一个字符串。
  • 选项C:readtext 不是Python中文件对象的内置方法。文件对象没有提供名为 readtext 的方法。
  • 选项D:read() 方法读取文件的全部内容,并返回一个字符串。

19. 已知通过 stu=Student('1810101','李晓明') 可以创建一个 Student 类对象并赋给 stu,则创建该对象时所执行的构造方法的形参个数(不考虑不定长参数的情况)为

A. 4
B. 3
C. 1
D. 2

正确答案: D

解析

  • 根据给定的代码 stu=Student('1810101','李晓明')Student 类的构造方法接受两个参数:第一个参数是 '1810101',第二个参数是 '李晓明'
  • 因此,构造方法的形参个数为2。

20. python不支持的数据类型有

A. char
B. int
C. float
D. list

正确答案: A

解析

  • 选项A:char 不是Python中直接支持的数据类型。Python中的字符串是由字符组成的序列,但单个字符通常被视为长度为1的字符串,而不是一个单独的数据类型。
  • 选项B:int 是Python中的整数类型。
  • 选项C:float 是Python中的浮点数类型。
  • 选项D:list 是Python中的列表类型,它是一个有序的、可变的元素集合。

填空题

  1. print(1, 2, 3, sep=’:’) 的输出结果为____________。

    • 正确答案: 1:2:3
    • 解析: sep=':' 参数指定了元素之间的分隔符。
  2. 查看变量类型的Python内置函数是________________。

    • 正确答案: type()
    • 解析: type() 函数返回对象的类型。
  3. 以3为实部4为虚部,Python复数的表达形式为___________

    • 正确答案: 3+4j3+4J
    • 解析: Python中复数的表示方法是 real + imag j,其中 j 是虚数单位。
  4. 在Python中__________表达空类型。

    • 正确答案: None
    • 解析: None 在 Python 中代表空值或空对象。
  5. 字典对象的___________方法可以获取指定“键”对应的“值”,并且可以在指定“键”不存在的时候返回指定值,如果不指定
    则返回None

    • 正确答案: getget()get( )
    • 解析: get() 方法用于从字典中获取值,并且可以提供默认值以防键不存在。
  6. del 命令既可以删除列表中的一个元素,也可以删除整个列表。

    • 正确答案: del
    • 解析: del 关键字用于删除对象,可以是列表的单个元素或整个列表。
  7. 表达式 len(range(1, 10)) 的值为___________。

    • 正确答案: 9
    • 解析: range(1, 10) 生成从1到9的整数序列,len() 函数返回这个序列的长度。
  8. Python 3.x语句 print(1, 2, 3, sep=’:’) 的输出结果为____________。

    • 正确答案: 1:2:3
    • 解析: sep=':' 参数指定了元素之间的分隔符。
  9. Python 3.0运算符中用来计算整商的是_________

    • 正确答案: //
    • 解析: // 运算符用于整数除法,返回整商。
  10. 以3为实部4为虚部,Python复数的表达形式为___________

    • 正确答案: 3+4j3+4J
    • 解析: Python中复数的表示方法是 real + imag j,其中 j 是虚数单位。
  11. 字典中每个元素的“键”与“值”之间使用________分隔开

    • 正确答案: :
    • 解析: 在字典中,键和值之间用冒号 : 分隔。
  12. Python 3.x语句 print(1, 2, 3, sep=’:’) 的输出结果为____________。

    • 正确答案: 1:2:3
    • 解析: sep=':' 参数指定了元素之间的分隔符。
  13. del 命令既可以删除列表中的一个元素,也可以删除整个列表。

    • 正确答案: del
    • 解析: del 关键字用于删除对象,可以是列表的单个元素或整个列表。
  14. 字典对象的___________方法可以获取指定“键”对应的“值”,并且可以在指定“键”不存在的时候返回指定值,如果不指
    定则返回None

    • 正确答案: getget()get( )
    • 解析: get() 方法用于从字典中获取值,并且可以提供默认值以防键不存在。
  15. 在Python中__________表达空类型。

    • 正确答案: None
    • 解析: None 在 Python 中代表空值或空对象。
  16. Python中的列表通过________符号来创建。

    • 正确答案: []
    • 解析: 列表是用方括号 [] 来创建的,例如:my_list = []
  17. 在Python中,________是用于注释代码的方式。

    • 正确答案: #
    • 解析: 单行注释使用井号 #,例如:# 这是一个注释
  18. Python中的字符串通过________符号来创建。

    • 正确答案: ''""
    • 解析: 字符串可以用单引号 ' ' 或双引号 " " 来创建,例如:my_string = 'Hello, World!'
  19. 在Python中,________是用于多行注释的方式。

    • 正确答案: ''' '''""" """
    • 解析: 多行字符串或文档字符串使用三个单引号 ''' ''' 或三个双引号 """ """ 来创建,例如:'''这是一个多行 注释'''

二、编程题解析

Python编程题解析博客

题目1:数据格式化输出

题目描述
键盘输入正整数n,按要求把n输出到屏幕,格式要求:宽度为20个字符,数字中间对齐,不足部分用*填充,正整数按照科学计数法表示。

解析
我们可以使用Python的字符串格式化功能来完成这个任务。具体地,我们可以使用str.format()方法或者f-string来格式化输出。

答案代码

1
2
3
n = int(input("请输入正整数n: "))
formatted_str = "{:*^20}".format(f"{n:,.0f}") # 使用科学计数法并填充*
print(formatted_str)

左对齐

1
2
3
n = int(input("请输入正整数n: "))
formatted_str = "{:*<20}".format(f"{n:,.0f}")
print(formatted_str)

右对齐

1
2
3
n = int(input("请输入正整数n: "))
formatted_str = "{:*>20}".format(f"{n:,.0f}")
print(formatted_str)

题目2:编程题-循环结构

题目描述
编写程序,实现从键盘输入正整数n,令m表示小于等于n的最大偶数,计算并输出2^2 + 4^2 + …… + m^2的值。

解析
首先,我们需要找到小于等于n的最大偶数m。然后,我们可以使用一个循环来计算平方和。

答案代码

1
2
3
4
n = int(input("Input n:"))
m = n if n % 2 == 0 else n - 1 # 找到小于等于n的最大偶数
result = sum(i**2 for i in range(2, m + 1, 2))
print(f"result={result}")

题目3:编程题-多分支结构

题目描述
编写程序,功能是分数等级划分,根据输入的分数,输出分数对应的分数等级。如果输入的成绩大于100或小于0,则提示错误。

解析
我们可以使用if-elif-else语句来实现多分支结构,根据输入的分数来判断等级。

答案代码

1
2
3
4
5
6
7
8
9
10
11
12
13
score = float(input("Input score:"))
if score > 100 or score < 0:
print("Input error!")
elif 90 <= score <= 100:
print("A")
elif 80 <= score < 90:
print("B")
elif 70 <= score < 80:
print("C")
elif 60 <= score < 70:
print("D")
else:
print("E")

题目4:列表插入和删除

题目描述
输入n(n>1)个正整数,每次将输入的整数插入到列表头部。-1表示输入结束。再输入一个正整数,在列表中查找该数并删除它。要求输出进行删除操作后的列表。

解析
我们可以使用一个while循环来读取输入的整数,并将其插入到列表的头部。当输入-1时,循环结束。然后,我们读取要删除的整数,并使用列表的remove方法删除它。

答案代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
nums = []
while True:
try:
num = int(input())
if num == -1:
break
nums.insert(0, num)
except ValueError:
continue

to_remove = int(input())
if to_remove in nums:
nums.remove(to_remove)

print(" ".join(map(str, nums)))

题目5:字典中的数据排序输出

题目描述
有两个字典数据,请将dic1按键的大小升序排序,将dic2按值的大小升序排序,输出dic1的前n个键的内容,输出dic2前n个键值对。

解析
我们可以使用Python的sorted函数来对字典的键或值进行排序。然后,我们可以使用切片操作来获取前n个元素。

答案代码

1
2
3
4
5
6
7
8
9
10
dic1 = {'Tom': 21, 'Bob': 18, 'Jack': 23, 'Ana': 20}
dic2 = {'李雷': 21, '韩梅梅': 18, '小明': 23, '小红': 20}

n = int(input())

sorted_keys_dic1 = sorted(dic1.keys())[:n]
sorted_items_dic2 = sorted(dic2.items(), key=lambda item: item[1])[:n]

print(sorted_keys_dic1)
print(sorted_items_dic2)

题目6:Numpy

题目描述
请从键盘输入一个整数N(N>=2),首先生成一个全是1的N维数组,然后产生一个N*N的矩阵,矩阵的元素的值的范围是0~N**2-1,分别打印出N维数组、矩阵以及矩阵的所有元素的和、每一行的和。

  • 解析
    我们可以使用Numpy库来生成数组和矩阵,并计算它们的和。

答案代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import numpy as np

N = int(input("请输入整数N (N>=2): "))

# 生成全是1的N维数组
ones_array = np.ones(N)

# 生成N*N的矩阵
matrix = np.arange(N**2).reshape((N, N))

# 打印N维数组
print(ones_array)

# 打印矩阵
print(matrix)

# 打印矩阵所有元素的和
print(matrix.sum())

# 打印每一行的和
print(matrix.sum(axis=1))
Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2023-2025 John Doe
  • Visitors: | Views:

请我喝杯茶吧~

支付宝
微信