主页 > 人工智能  > 

Python常见面试题的详解5

Python常见面试题的详解5
1. re 模块中 search () 和 match () 的区别 要点:在 Python 的 re 模块中,re.match() 和 re.search() 是用于正则表达式匹配的两个重要函数,它们的主要区别在于匹配的起始位置:re.match():从字符串的开头开始匹配正则表达式。如果字符串的开头部分不符合正则表达式的模式,re.match() 函数将返回 None。re.search():在整个字符串中搜索第一个符合正则表达式模式的位置,不要求从字符串的开头进行匹配。示例:

python

import re text = "abc123" result_match = re.match(r'\d+', text) # 由于字符串开头不是数字,返回 None result_search = re.search(r'\d+', text) # 能够匹配到字符串中的 "123",返回匹配对象 print(result_match) print(result_search) 2. 使用 re.sub () 函数进行文本字符串的查询和替换 要点:re.sub() 函数是 re 模块中用于字符串替换的强大工具,它可以根据指定的正则表达式模式,将字符串中匹配的部分替换为新的字符串。示例:

python

import re text = "Python is fun" new_text = re.sub(r"fun", "awesome", text) # 将字符串中的 "fun" 替换为 "awesome" print(new_text) 3. except 的用法和作用 要点:except 语句在 Python 的异常处理机制中起着关键作用,它的主要作用是捕获 try 代码块中可能出现的异常,从而防止程序因为异常而崩溃。示例:

python

try: # 这里放置可能会出现错误的代码 num = 10 / 0 # 会引发 ZeroDivisionError 异常 except ValueError as e: # 处理特定的 ValueError 异常,这里可以添加处理逻辑 print(f"捕获到 ValueError 异常: {e}") except Exception as e: # 处理除了已经明确捕获的特定异常之外的所有其他异常 print(f"捕获到其他异常: {e}") 4. range () 函数的用法和作用 要点:range() 函数是 Python 内置的一个用于生成整数序列的函数,它在循环中经常被使用,有以下几种调用形式:range(stop):生成从 0 到 stop - 1 的整数序列。range(start, stop):生成从 start 到 stop - 1 的整数序列。range(start, stop, step):按照指定的步长 step 生成从 start 到 stop - 1 的整数序列,步长可以为正数或负数。示例:

python

print(list(range(5))) # 输出 [0, 1, 2, 3, 4] print(list(range(1, 10, 2))) # 输出 [1, 3, 5, 7, 9] 5. 处理大文件(内存限制) 要点:当处理大文件时,为了避免一次性将整个文件加载到内存中导致内存不足的问题,可以采用逐行读取的方式,利用生成器来实现。示例:

python

def get_lines(): try: with open("file.txt", "r", encoding="utf-8") as f: # 注意指定文件编码 for line in f: yield line.rstrip("\r\n") # 去除换行符 \r\n except FileNotFoundError: print("文件不存在") except UnicodeDecodeError: print("文件编码错误") except: print("文件处理过程中出现其他错误") # 调用生成器函数逐行处理文件 for line in get_lines(): print(line)

在处理大文件时,需要考虑以下几个问题:

文件编码:确保指定正确的文件编码,常见的编码有 utf-8、gbk 等。换行符处理:不同操作系统的换行符可能不同(如 Windows 系统的 \r\n 和 Linux 系统的 \n),需要进行适当处理。异常处理:如文件不存在、文件损坏等情况,要进行合理的异常捕获和处理。 6. 判断日期是年份的第几天 要点:可以使用 Python 的 datetime 模块来判断一个日期是所在年份的第几天。示例:

python

from datetime import datetime date_str = "2025-02-15" date = datetime.strptime(date_str, "%Y-%m-%d") day_of_year = date.timetuple().tm_yday # 直接获取该日期在年份中的第几天 print(day_of_year) 7. 打乱有序列表 要点:使用 random 模块中的 shuffle() 函数可以对列表进行原地打乱,即直接修改原列表的元素顺序。示例:

python

import random alist = [1, 2, 3, 4] random.shuffle(alist) # 列表 alist 的元素顺序被打乱,例如可能变为 [3, 1, 4, 2] print(alist) 8. 字典按值排序 要点:可以通过 sorted() 函数结合 lambda 表达式,根据字典的值对字典进行排序。示例:

python

d = {'a': 24, 'g': 52, 'i': 12, 'k': 33} sorted_dict = dict(sorted(d.items(), key=lambda x: x[1])) # 排序后的字典为 {'i': 12, 'a': 24, 'k': 33, 'g': 52} print(sorted_dict) 9. 字典推导式 要点:字典推导式是一种简洁的创建字典的方式,它可以根据已有的数据结构快速生成字典。将列表转换为字典,列表的元素作为键,元素的索引的平方作为值。示例:

python

keys = ['a', 'b', 'c'] d = {k: i ** 2 for i, k in enumerate(keys)} # 生成的字典为 {'a': 0, 'b': 1, 'c': 4} print(d) 10. 反转字符串 要点:在 Python 中,可以通过切片操作来实现字符串的反转。示例:

python

s = "aStr" reversed_s = s[::-1] # 字符串 s 被反转,结果为 "rtSa" print(reversed_s) 11. 字符串转字典 要点:可以将特定格式的字符串转换为字典,通常需要结合字符串的分割和字典推导式来实现。示例:

python

s = "k:1 |k1:2|k2:3|k3:4" d = {k: int(v) for item in s.split("|") for k, v in [item.split(":")]} # 转换后的字典为 {'k': 1, 'k1': 2, 'k2': 3, 'k3': 4} print(d)

标签:

Python常见面试题的详解5由讯客互联人工智能栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Python常见面试题的详解5

上一篇
2025.2.18

下一篇
AI项目开发流程