Python基础测试题

一、单选题(共15题,每题3分,共45分)

1、以下哪个是Python的合法变量名?( C)

A. 2var B. var-2 C. _var2 D. class

2、执行 print(type(3.14)) 的输出结果是?( B)

A. <class ‘int’> B. <class ‘float’> C. <class ‘number’> D.<class ‘double’>

3、下列代码的输出是?(A )

1
print(3 * 'ab' + 2 * 'c')

A. abababcc B. ababc2 C. 3ab2c D. 报错

4、以下哪个语句可以正确创建一个空列表?( B)

A. list = {} B. list = [] C. list = () D. list = set()

5、执行 x = [1, 2, 3]; x.append(4) 后,x 的值是?( A)

A. [1, 2, 3, 4] B. [1, 2, 3], 4 C. (1, 2, 3, 4) D. [1, 2,3](无变化)

6、以下哪个函数用于获取字符串的长度?( C)

A. size() B. length() C. len() D. count()

7、条件语句 if x > 0: … elif x == 0: … else: … 中,elif的作用是?( B)

A. 替代 if B. 当 if 条件不满足时检查新条件 C. 结束条件判断 D.强制执行后续代码

8、循环语句 for i in range(3): print(i) 的输出是?(A )

A. 0 1 2(换行分隔) B. 1 2 3 C. 0 1 2 3 D. 3

9、函数定义 def func(a, b=2): return a + b,调用 func(3) 的返回值是?(A)

A. 5 B. 3 C. 2 D. 报错(缺少参数)

调用时只传 a=3b 会自动使用默认值 2,结果是 5。

10、以下代码的输出是?(B )

1
2
s = "hello"
print(s[1:4])

A. hello B. ell C. helo D. hel

11、列表 nums = [1, 2, 3],执行 nums.append([4, 5]) 后,nums的值是?(B )

A. [1, 2, 3, 4, 5] B. [1, 2, 3, [4, 5]] C. [1, 2, 3, 4, [5]]D. 报错

12、下列哪个不是Python的关键字?( C)

A. if B. while C. main D. for

13、下列代码的执行结果是( B)

descript{width=”2.8541666666666665in”
height=”0.4479166666666667in”}

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

14、以下代码的输出是?(B )

1
print(10 // 3) # 双斜杠表示整除

A. 3.333 B. 3 C. 4 D. 3.0

15、Python中布尔类型的关键字是?(A )

A. True/False B. true/false C. YES/NO D. 1/0

二、多选题(共5题,每题5分,共25分;选错、漏选均不得分)

1、以下哪些是Python的基本数据类型?( AC)

A. int B. list C. str D. dict

但严格来说,Python 的**基本数据类型(Built-in Types)**包括:

  • int, float, complex, bool
  • str
  • NoneType
  • bytes, bytearray

2、关于Python列表(list),正确的描述有?(CD )

A. 列表是有序的 B. 列表元素必须同类型 C. 列表支持索引和切片 D.列表可修改(可变)

3、以下哪些语句可以正确输出”Hello World”?( ACD)

A. print(“Hello World”) B. print(‘Hello World’) C. print(HelloWorld) D. print(“Hello” + “ World”)

del lst[index]del lst[start:end] 是 Python 中删除列表元素的标准方式。

4、下列哪个方法可以删除列表中的元素?(ACD)

A. remove() B. delete() C. pop() D. del

5、以下哪些操作会修改原列表(而非生成新列表)?( AC)

A. lst.append(1) B. lst + [1] C. lst.extend([1]) D. lst = lst +[1]

三、进阶题

1、请使用python实现一个python终端程序,叫学生管理模块,涵盖功能如下:

  1. 查看学生
  2. 新增学生
  3. 修改学生
  4. 删除学生
  5. 搜索学生

image-20250923192757685

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
stu_list = [{'name':'刘备','id':'001','age':'35','gender':'男人'},
{'name':'关羽','id':'002','age':'32','gender':'男人'},
{'name':'张飞','id':'003','age':'31','gender':'男人'},
{'name':'诸葛亮','id':'004','age':'28','gender':'男人'},
{'name':'赵云','id':'005','age':'26','gender':'男人'},
{'name':'曹操','id':'006','age':'38','gender':'男人'},
{'name':'孙权','id':'007','age':'25','gender':'男人'},
{'name':'周瑜','id':'008','age':'24','gender':'男人'},
{'name':'吕布','id':'009','age':'29','gender':'男人'},
{'name':'貂蝉','id':'010','age':'20','gender':'女人'}
]

while True:
print("="*36)
print("学生信息管理系统".center(30))
print("1.查看学生信息".center(30))
print("2.添加学生信息".center(30))
print("3.删除学生信息".center(30))
print("4.修改学生信息".center(30))
print("="*36)

input_id = input("请输入操作序号(1-4),输入q退出:")
if input_id == '1':
print("查看学生信息")
for stu in stu_list:
print(stu)
input("请输入回车继续...")
elif input_id == '2':
print("添加学生信息")
name = input("请输入学生姓名:")
id = input("请输入学生学号:")
age = input("请输入学生年龄:")
gender = input("请输入学生性别:")
stu_list.append({'name':name,'id':id,'age':age,'gender':gender})
print("添加成功!")
elif input_id == '3':
print("删除学生信息")
id = input("请输入学生学号:")
for stu in stu_list:
if stu['id'] == id:
stu_list.remove(stu)
print("删除成功!")
break
else:
print("学号不存在!")
elif input_id == '4':
print("修改学生信息")
id = input("请输入学生学号:")
for stu in stu_list:
if stu['id'] == id:
name = input("请输入学生姓名(留空则不修改):")
if name:
stu['name'] = name
age = input("请输入学生年龄(留空则不修改):")
if age:
stu['age'] = age
gender = input("请输入学生性别(留空则不修改):")
if gender:
stu['gender'] = gender
print("修改成功!")
break
else:
print("学号不存在!")
elif input_id.lower() == 'q':
print("退出系统")
break
else:
print("输入错误!")

image-20250923204436207

**明天默写和面试题 **

1、为什么我们不使用root账户?

在 Linux 系统中,root 账户是系统最高权限的管理员,拥有着对系统的完全访问权限。

如果我们直接使用 root 账户,从安全角度来说有着巨大的安全风险。

另外,因为权限过大,因此也有着误操作的风险。

2、IP地址 和 域名的关系是什么?

IP 地址是计算机在网络上的唯一标识符,类似于门牌号。

域名则是互联网上主机或者网络服务的一种易于记忆、具有层次结构的名称标识。

IP 地址与域名互相映射,1个域名对应1个IP 地址,1个 IP 地址对应多个域名。

3、为什么IP地址到现在还没有分配完?

在IPv4 地址紧张的当下,私有IP地址范围(如10.0.0.0/8、172.16.0.0/12和192.168.0.0/16等)被广泛使用于内部网络。

当内部网络设备需要与公网通信时,会利用NAT技术将私有IP地址映射到公共IP地址上。

通过这种方式极大地增加了单个公共IPv4地址可以支持的内部设备数量。
而运营商则使用大规模的NAT系统,允许大量用户共享一个或几个公网IPv4地址,这样也同样减缓了IP短缺的问题。

4、你知道OSI七层网络模型吗?

OSI七层网络模型其层次从下至上分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

物理层是最底层,是用于规范数据在物理媒介上传输的规范的一层。
其次是数据链路层,其负责将电信号转换为我们的数据并校验,同时负责了物理层面的选择转发的设备(地址管理和访问控制)。
然后是网络层,负责选择将数据发送到哪台设备上。
传输层则是数据到了我们系统中,开始确认接收信息的服务端口,TCP和UDP就是这一层的。
会话层则是我们服务对通信的管理。
表示层则将我们的数据转换为对应的格式。
最后则是应用层,开始处理我们的业务。