### Python面试题笔记知识点解析 #### 1. 一行代码实现1到100的和 在Python中,可以通过内置函数`sum()`结合`range()`函数来实现计算1到100所有数字的和,具体代码如下: ```python print(sum(range(1, 101))) ``` 这里需要注意的是,`range()`函数会生成一个范围内的整数序列,不包括结束值,所以参数应该是101才能包含100。 #### 2. 参数内部修改全局变量 在Python中,如果想要在一个函数内部修改全局变量,需要使用`global`关键字声明该变量。例如下面的例子展示了如何在函数内部修改外部定义的全局变量: ```python a = 5 def fn(): global a a = 2 fn() print(a) # 输出:2 ``` 这里`global a`的作用是告诉Python解释器,我们在函数内部修改的是名为`a`的全局变量。 #### 3. 字典删除键与合并字典 Python中可以通过`del`关键字来删除字典中的某个键值对,使用`update()`方法来合并两个字典。例如: ```python dict = {"name": "小明", "age": 18} del dict["name"] print(dict) # 输出:{'age': 18} dict2 = {"name": "牛郎"} dict.update(dict2) print(dict) # 输出:{'age': 18, 'name': '牛郎'} ``` #### 4. Python中实现列表去重 可以利用集合(`set`)的数据结构特性来去除列表中的重复元素。集合中的元素是唯一的,不会存在重复。具体操作如下: ```python list = [3, 1, 4, 1, 5, 9, 3] list = list(set(list)) print(list) # 输出:[1, 3, 4, 5, 9] ``` 这里需要注意的是,使用`set()`后得到的是一个集合,如果需要转换回列表,还需要使用`list()`函数。 #### 5. 函数中*args(不定长位置参数)和**kwargs(不定长关键字参数) 在Python函数定义时,可以在参数列表中使用`*args`来接收任意数量的位置参数,使用`**kwargs`来接收任意数量的关键字参数。例如: ```python def example_function(*args, **kwargs): print("Positional arguments:", args) print("Keyword arguments:", kwargs) example_function(1, 2, 3, name="Alice", age=25) ``` 运行这段代码将输出: ``` Positional arguments: (1, 2, 3) Keyword arguments: {'name': 'Alice', 'age': 25} ``` #### 6. Python2中的range()与Python3中的range() 在Python2中,`range()`函数返回一个列表,而在Python3中,`range()`返回一个迭代器,这有助于节省内存空间。例如: ```python # Python2 print(range(5)) # 输出:[0, 1, 2, 3, 4] # Python3 print(list(range(5))) # 输出:[0, 1, 2, 3, 4] ``` #### 7. 装饰器的概念 装饰器是一种特殊类型的函数,它可以接收一个函数作为参数,并返回一个新的函数。装饰器通常用于扩展原有函数的功能或行为,而无需修改原函数本身。例如: ```python def my_decorator(func): def wrapper(): print("Something is happening before the function is called.") func() print("Something is happening after the function is called.") return wrapper @my_decorator def say_hello(): print("Hello!") say_hello() ``` 这段代码将输出: ``` Something is happening before the function is called. Hello! Something is happening after the function is called. ``` #### 8. Python中的基本数据类型 Python支持多种基本数据类型,包括但不限于: - `int`:整数 - `bool`:布尔值 - `str`:字符串 - `list`:列表 - `tuple`:元组 - `dict`:字典 #### 9. 对象中`__new__`与`__init__`的区别 - `__new__`方法是负责创建一个新的实例,它需要有一个`cls`参数,并且必须有返回值,通常是通过调用父类(如通过`super(cls, cls).__new__(cls)`)的`__new__`方法创建的对象。 - `__init__`方法则是对这个实例进行初始化的操作,有一个`self`参数,即由`__new__`返回的实例。`__init__`不需要返回值。 #### 10. 使用`with`方法 `with`语句提供了一种方便的方式来处理资源,如文件、网络连接等。当使用`with`语句打开文件时,即使在处理文件的过程中发生异常,文件也会被正确地关闭。例如: ```python with open('file.txt', 'r') as file: content = file.read() ``` #### 11. `map()`函数 `map()`函数接受一个函数和一个或多个序列作为输入,将函数依次作用于序列中的每个元素,并返回一个迭代器。例如: ```python def square(x): return x * x numbers = [1, 2, 3, 4, 5] squared_numbers = map(square, numbers) print(list(squared_numbers)) # 输出:[1, 4, 9, 16, 25] ``` #### 12. 生成随机整数与小数 Python提供了多种生成随机数的方法,其中最常用的是`random`模块。例如: ```python import random import numpy as np result = random.randint(10, 20) # 生成指定区间内的随机整数 res = np.random.rand(1) # 生成指定个数的随机小数,返回一个列表 ret = random.random() # 生成0到1之间的随机小数 print(result, res, ret) ``` #### 13. 避免转义使用`r`前缀 在Python字符串中,如果希望避免某些字符被当作转义字符处理,可以在字符串前加上`r`前缀,例如: ```python path = r"C:\Users\John\Documents" # 不会被解释为转义序列 ``` #### 14. 使用正则表达式提取文本 正则表达式是一种强大的文本匹配工具。例如,要从HTML中提取特定文本,可以使用`re`模块的`findall()`函数。例如: ```python import re str = "<div class='box'>中国</div>" res = re.findall(r"<div class='.*'>(\w+)</div>", str) print(res) # 输出:['中国'] ``` #### 15. 使用`assert`断言 `assert`语句用于确保某个条件是真的,如果条件为假,则引发一个`AssertionError`异常。例如: ```python a = 3 assert a > 1 print("断言成功,程序向下继续执行") ``` #### 16. 数据表中消除重复字段使用`DISTINCT` 在SQL查询中,使用`DISTINCT`关键字可以消除结果集中的重复行。例如: ```sql SELECT DISTINCT name FROM student; ``` #### 17. Python中可变类型与不可变类型 - **不可变类型**:一旦创建后,其值就不能被改变。主要包括数字类型、字符串和元组。 - **可变类型**:可以更改其值。主要包括列表、字典和集合。 #### 18. 去重并按照升序排列 要对字符串中的字符进行去重并排序,可以先转换为集合去重,然后转换为列表并排序。例如: ```python str = "adfafasssdfgdfsfasdf" str1 = set(str) str = list(str1) str.sort(reverse=False) str = "".join(str) print(str) ``` #### 19. 使用匿名函数实现两个数相乘 在Python中,可以使用`lambda`关键字来创建匿名函数。例如: ```python sum = lambda a, b: a * b print(sum(3, 4)) # 输出:12 ``` #### 20. 字典根据键从大到小排列 要根据字典的键进行排序,可以使用`sorted()`函数结合`lambda`表达式。例如: ```python dict = {"name": "张珊", "age": "18", "city": "北京"} sorted_dict = sorted(dict.items(), key=lambda item: item[0], reverse=True) print(sorted_dict) ``` 这里`reverse=True`表示降序排序。
剩余7页未读,继续阅读
- 粉丝: 4
- 资源: 40
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- YoloX目标检测算法的结构原理及其应用优化
- java-leetcode题解之Populating Next Right Pointers in Each Node.java
- java-leetcode题解之Plus One.java
- java-leetcode题解之Play with Chips.java
- java-leetcode题解之PIO.java
- java-leetcode题解之Permutation Sequence.java
- java-leetcode题解之Permutation in String.java
- java-leetcode题解之Perfect Squares.java
- java-leetcode题解之Path with Maximum Gold.java
- java-leetcode题解之Path Sum III.java