Python函数:实现字符串处理与小题提取功能
根据您的要求,我们可以定义一个名为 `zi_fu_chuan` 的函数,该函数接收四个参数 `a`, `b`, `c` 和 `d`,并根据 `d` 的不同值执行不同的操作。以下是实现该函数的代码: ```python import re def zi_fu_chuan(a, b, c, d=1): if d == 1: # 返回字符串a中字符串b的下标 index = a.find(b) return index if index != -1 else -1 # 如果未找到,返回-1 elif d == 2: # 返回字符串a的小题数目 pattern = r'\(\d+\)' # 匹配形如 (1), (2), (3) 的小题编号 matches = re.findall(pattern, a) return len(matches) elif d == 3: # 输出第c小题 pattern = r'\(\d+\)' # 匹配形如 (1), (2), (3) 的小题编号 matches = re.findall(pattern, a) if 1 <= c <= len(matches): start_index = a.find(matches[c-1]) end_index = a.find(matches[c]) if c < len(matches) else len(a) question = a[start_index:end_index].strip() return f"{c:05d}:{question}" else: return "小题编号超出范围" elif d == 4: # 将第c小题选项用指定格式表示 pattern = r'\(\d+\)' # 匹配形如 (1), (2), (3) 的小题编号 matches = re.findall(pattern, a) if 1 <= c <= len(matches): start_index = a.find(matches[c-1]) end_index = a.find(matches[c]) if c < len(matches) else len(a) question = a[start_index:end_index].strip() options = re.findall(r'[abcd]\.\s.*?(?=[abcd]\.|$)', question) formatted_options = ';'.join(options) return formatted_options else: return "小题编号超出范围" else: return "无效的d值" # 测试示例 a = """ 一、选择题 (1)以下input()函数的调用方式中,符合语法的是()。 a.input b.input " " c.input ' ' d.input() (2)设m=a,则 prin(m*3)的输出结果是()。 a.3*a b.* c.mmm d.报错 (3)设m=8,则 """ b = "input()" c = 2 print(zi_fu_chuan(a, b, c, d=1)) # 应返回字符串a中字符串b的下标 print(zi_fu_chuan(a, b, c, d=2)) # 应返回字符串a的小题数目 print(zi_fu_chuan(a, b, c, d=3)) # 应输出第c小题 print(zi_fu_chuan(a, b, c, d=4)) # 应将第c小题选项用指定格式表示 ``` 解释 1. d = 1: 使用 `str.find()` 方法查找子字符串 `b` 在字符串 `a` 中的位置。如果未找到,返回 `-1`。 2. d = 2: 使用正则表达式匹配所有小题编号 `(1)`, `(2)`, 等等,并返回匹配到的数量。 3. d = 3: 找到第 `c` 个小题的起始和结束位置,提取并格式化输出。 4. d = 4: 提取第 `c` 个小题的所有选项,并以指定格式连接返回。 测试示例 - `zi_fu_chuan(a, b, c, d=1)` 应返回 `b` 在 `a` 中的下标。 - `zi_fu_chuan(a, b, c, d=2)` 应返回 `a` 中的小题数目。 - `zi_fu_chuan(a, b, c, d=3)` 应输出第 `c` 小题。 - `zi_fu_chuan(a, b, c, d=4)` 应将第 `c` 小题的选项用指定格式表示。 ######[AI写代码神器 | 969点数解答 | 2024-11-15 15:37:37]
- Python 实现简易密码设置系统:多种功能交互与安全要点揭秘(字节豆包 | 286点数解答 | 2025-03-28 10:43:21)367
- C语言实现多功能密码设置系统:含代码及安全注意要点(字节豆包 | 414点数解答 | 2025-03-28 10:43:55)355
- C 语言实现:超简单密码设置系统,含代码与注意要点!(字节豆包 | 519点数解答 | 2025-03-28 12:42:02)393
- C语言实现密码管理系统:含功能代码与安全注意事项(字节豆包 | 409点数解答 | 2025-04-05 18:09:56)339
- C语言实现多功能密码系统:初始化、确认、设置、显示、重置与退出(字节豆包 | 454点数解答 | 2025-04-05 18:48:42)339
- C语言实现密码管理系统:含初始化、确认、设置、显示、重置及退出功能(字节豆包 | 413点数解答 | 2025-04-06 15:37:16)285
- C 语言实现密码管理系统:含初始化、确认、设置、显示、重置及退出功能(字节豆包 | 403点数解答 | 2025-04-06 15:37:54)300
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)352
- C 语言实现链表操作:创建、输出、删除及插入功能详解(字节豆包 | 534点数解答 | 2024-12-09 21:33:48)347
- C语言实现链表创建、输出、删除与插入操作的完整代码及注意要点(字节豆包 | 609点数解答 | 2024-12-18 12:18:21)366
- C++ 求解:最少操作次数让字符串无子串 “friend” (字节豆包 | 153点数解答 | 2024-08-17 16:29:54)485
- C++ 求解:最少操作次数让字符串不再含 “friend” 子串!(讯飞星火 | 260点数解答 | 2024-08-17 16:30:49)473