python面试题——基础篇
1.python保留字有哪些?
序号 | 保留字 | 说明 |
---|---|---|
1 | and | 逻辑与操作,用于表达式运算 |
2 | as | 用于转换数据类型 |
3 | assert | 用于判断变量或条件表达式的结果 |
4 | async | 用于启用异步操作 |
5 | await | 用于异步操作中等待协程返回 |
6 | break | 中断循环语句的执行 |
7 | class | 定义类 |
8 | continue | 继续执行下一次循环 |
9 | def | 定义函数或方法 |
10 | del | 删除变量或序列的值 |
11 | elif | 条件语句,与 if、else 结合使用 |
12 | else | 条件语句,与 if、else 结合使用;也可用于异常或循环语句 |
13 | except | 包含捕获异常后的处理代码块,与 try、finally 结合使用 |
14 | False | 含义为“假”的逻辑值 |
15 | finally | 包含捕获异常后的始终要调用的代码块,与 try、except 结合使用 |
16 | for | 循环语句 |
17 | from | 用于导入模块,与 import 结合使用 |
18 | global | 用于在函数或其他局部作用域中使用全局变量 |
19 | if | 条件语句,与 elif、else 结合使用 |
20 | import | 导入模块,与 from 结合使用 |
21 | in | 判断变量是否在序列中 |
22 | is | 判断变量是否为某个类的实例 |
23 | lambda | 定义匿名函数 |
24 | None | 表示一个空对象或是一个特殊的空值 |
25 | nonlocal | 用于在函数或其他作用域中使用外层(非全局)变量 |
26 | not | 逻辑非操作,用于表达式运算 |
27 | or | 逻辑或操作,用于表达式运算 |
28 | pass | 空的类、方法或函数的占位符 |
29 | raise | 用于抛出异常 |
30 | return | 从函数返回计算结果 |
31 | True | 含义为“真”的逻辑值 |
32 | try | 测试执行可能出现异常的代码,与 except, finally 结合使用 |
33 | while | 循环语句 |
34 | with | 简化 Python 的语句 |
35 | yield | 从函数依次返回值 |
2.运算符is与==有什么区别?
python中对象包含三种元素:id、type、value。其中,id是唯一标识,type标识对象类型,value则是对象的值。
is是用判断a对象是否就是b对象,是用id来判断的
a = [1,2,3] b = a b is a 输出True
==用来判断a对象的值是否和b对象相等
b == a True b == a[:] b is a False b == a True
3.如何删除列表中重复元素?
这种方法,利用集合(set)中元素的不可重复性,在用sort进行排序
lis = ['a','a','b','c','c','b','d']
new_list = list(set(lis))
new_list.sort(key=lis.index)
print(new_list)
结果:['a', 'b', 'c', 'd']
4.如果求两个列表的交集、差集、并集?
a = [1,2,3,4,5] b = [2,4,5,6,7] # 交集 result = [r for r in a if r in b] print("交集:",result) # 差集(在a中,不在b中) result = [r for r in a if r not in b] print("差集:",result) # 并集 result = a for r in b: if r not in result: result.append(r) print("并集:",result)
结果:
交集: [2, 4, 5]
差集: [1, 3]
并集: [1, 2, 3, 4, 5, 6, 7]
5.列表的常用方法有哪些?
方法 | 意义 |
---|---|
L.index(v [, begin[, end]]) | 返回对应元素的索引下标, begin为开始索引,end为结束索引,当 value 不存在时触发ValueError错误 |
L.insert(index, obj) | 将某个元素插放到列表中指定的位置 |
L.count(x) | 返回列表中元素的个数 |
L.remove(x) | 从列表中删除第一次出现在列表中的值 |
L.copy() | 复制此列表(只复制一层,不会复制深层对象) |
L.append(x) | 向列表中追加单个元素 |
L.extend(lst) | 向列表追加另一个列表 |
L.clear() | 清空列表,等同于 L[:] = [] |
L.sort(reverse=False) | 将列表中的元素进行排序,默认顺序按值的小到大的顺序排列 |
L.reverse() | 列表的反转,用来改变原列表的先后顺序 |
L.pop([index]) | 删除索引对应的元素,如果不加索引,默认删除最后元素,同时返回删除元素的引用关系 |
6.怎么去除字符串左边空格、右边空格、首尾空格?
s = " hello " print("去除左边空格",s.lstrip()) print("去除右边空格",s.rstrip()) print("去除首尾空格",s.strip())
7.什么是模块、怎么导入模块?
在python中,一个.py文件就是一个模块。模块提高了代码的可维护性,它可以被其他地方引用。一个包含很多Python文件的文件夹是一个包。一个包可以包含模块和子文件夹。模块可以分为以下几种:
1)内置模块:例如os、random、time
2)第三方模块:别人写好的模块,可以拿来就用,但是需要用pip安装。
3)自定义模块:编程人员自己封装的模块。
如何导入模块:
1)将整个模块导入: import somemodule
2)从某个模块导入某个函数:from somemodule import somefunction
3)从某个模块中导入多个函数:from somemodule import 1func,2func,3func
4)将某个模块中的全部函数导入:from somemodule import *
5)起别名导入:import random as rd