马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
知识点拆解
1. 切片技巧
定义
通过 [start:end:step] 语法截取字符串的子序列
- start:起始索引(包含,默认0)
- end:竣事索引(不包含,默认末尾)
- step:步长(可为负数实现逆序)
字诀:包左不包右
焦点用途
示例代码
- #输入一个字符串s
- s = "Hello,天梯赛!"
- # 基本切片
- print(s[0:5]) # 输出 "Hello" (索引0-4)
- print(s[7:10]) # 输出 "天梯赛"
- # 逆序技巧
- print(s[::-1]) # 输出 "!赛梯天,olleH"
- print(s[5:2:-1]) # 输出 ",ol" (从索引5到3逆序)
- # 步长应用
- print(s[::2]) # 输出 "Hlo天赛" (每隔1个字符取)
复制代码 注意事项
- 索引越界时自动取有效范围(如s[0:100]等效s[0:])
- 原字符串不可变,切片会天生新字符串
2. 格式化输出
定义
使用 f-string 或 format() 方法控制字符串的显示格式
常用格式符
格式符号功能说明示例:>n右对齐,总宽度nf"{6:>4}" → " 6":<n左对齐,总宽度nf"{6:<4}" → "6 ":^n居中对齐,总宽度nf"{6:^4}" → " 6 ":0>n右侧补零到n位f"{6:0>4}" → "0006":.2f保存两位小数f"{3.1415:.2f}" → "3.14":x十六进制格式f"{255:x }" → "ff"- print(f"{6:>4}")
- print(f"{6:<4}")
- print(f"{6:^4}")
- print(f"{6:0>4}")
- print(f"{6:0<4}")
- print(f"{6:0^4}")
- #答案输出示例已在上面表格中给出
复制代码 场景应用
- 按要求补前导零(如输出时间格式)
- 对齐表格数据
- 控制浮点数精度
示例代码
- # 成绩格式化输出
- name, score = "张三", 95.5
- print(f"{name:<5}的成绩:{score:0>5.1f}分")
- # 输出 "张三 的成绩:095.5分"
- # 日期补零
- month, day = 3, 8
- print(f"日期:{month:0>2d}-{day:0>2d}")
- # 输出 "日期:03-08"
复制代码 3. 正则表达式
定义
通过特定模式匹配文本的工具,Python中通过 re 模块实现。
- re.findall()提取数字/字母
- 匹配模式 r'\d+'(整数) / r'-?\d+'(含负数)
复制代码 常用元字符
模式含义示例\d匹配数字等价于[0-9]\w匹配字母/数字/下划线等价于[a-zA-Z0-9_]\s匹配空缺字符包含空格、换行等.匹配恣意字符(除换行)*匹配前字符0次或多次+匹配前字符1次或多次?匹配前字符0或1次 范例应用场景
- 从复杂文本中提取数字/字母
- 验证输入格式(如邮箱、电话号码)
- 替换特定模式的文本
示例代码
- import re
- text = "订单号:AB123,金额:-45.6元,数量:2"
- # findall提取所有整数(含负数)
- nums = re.findall(r"-?\d+", text)
- print(nums) # 输出 ['123', '-45', '6', '2']
- # 分割混合字符
- parts = re.split(r"(\d+)", "A12B34C")
- print(parts) # 输出 ['A', '12', 'B', '34', 'C']
- # 替换非数字字符
- clean_str = re.sub(r"[^\d]", "", "Tel: 0571-8888-6666")
- print(clean_str) # 输出 "057188886666"
复制代码 正则表达式在密码强度评估器的计划中有反复使用过,他的公式套用相对比较晦涩,比方\d表示数字,+表示一个或多个,-?处理可能出现的负号等等,比较细碎可以学一个用一个,初学者以尽量知道在干什么为主。
4. 字符串转换
焦点方法
方法功能说明时间复杂度.split()按分隔符分割为列表O(n).join()合并可迭代对象为字符串O(n).replace()替换子串O(n).upper()转大写O(n).strip()去除首尾空缺O(n) 应用场景对比
场景推荐方法按空格分割单词s.split() (无参数自动处理)处理含多种分隔符re.split()合并路径"/".join(path_parts)批量替换多个不同字符.translate() 示例代码
- # 分割与合并
- s = "2023-08-15"
- parts = s.split("-") # ['2023', '08', '15']
- new_s = "/".join(parts) # "2023/08/15"
- # 多重替换
- s = "Hello World"
- s = s.replace("H", "J").replace("W", "") # "Jello orld"
- # 快速清洗数据
- dirty_str = " Price: $123.45\n"
- clean_str = dirty_str.strip().replace("$", "").upper()
- # 结果:"PRICE: 123.45"
复制代码 综合应用示例
题目:处理用户输入的复杂字符串,提取所有整数并求和
- import re
- input_str = "数据:A1销售额5000元,B2销量-300件,成本-1200.5"
- numbers = list(map(int, re.findall(r"-?\d+", input_str)))
- total = sum(numbers) # 5000 + (-300) + (-1200) = 3800
- print(f"合计:{total}")
复制代码 对应训练题
L1-011 A-B(字符串删除操作)
L1-026 I Love GPLT(固定格式输出)
L1-034 点赞(统计特性字符)
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |