查看: 144|回复: 1

Python字符串操作从入门到实践:基础语法与高效技巧

[复制链接]
发表于 2 小时前 | 显示全部楼层 |阅读模式
Python 字符串是编程中最常用的数据类型之一,掌握其操作对编写高效代码至关重要。本文从基本创建到高级应用,涵盖索引切片、常用方法、格式化、性能优化等核心内容,并提供实际场景示例。

### 字符串的创建与基本操作
字符串由单引号、双引号或三引号创建。例如:
  1. str1 = 'Hello, World!'
  2. str2 = "Python 字符串"
  3. str3 = '''多行
  4. 字符串'''
  5. empty = ""
复制代码
字符串可以通过 `+` 连接,`*` 重复,`len()` 获取长度。
  1. first = "张"
  2. last = "三"
  3. full = first + last  # 张三
  4. line = "-" * 20      # 20个横线
  5. print(len("Hello, Python!"))  # 14
复制代码

### 索引与切片
正向索引从0开始,负向从-1开始。
  1. text = "Python"
  2. print(text[0])   # P
  3. print(text[-1])  # n
复制代码
切片格式 `[start:stop:step]`,省略start默认0,stop默认末尾。
  1. text = "Hello, Python!"
  2. print(text[0:5])     # Hello
  3. print(text[7:13])    # Python
  4. print(text[::-1])    # 反转字符串
复制代码

### 常用方法:大小写、查找、替换、分割、连接
大小写转换包括 `lower()`、`upper()`、`title()`、`capitalize()`、`swapcase()`。查找替换用 `find()`(未找到返回-1)、`index()`(未找到抛异常)、`replace()`。
  1. text = "Python is powerful. Python is easy."
  2. print(text.find("Java"))    # -1
  3. new = text.replace("Python", "Java")
复制代码
去除空白用 `strip()`、`lstrip()`、`rstrip()`。分割用 `split()`,连接用 `join()`。
  1. csv = "apple,banana"
  2. fruits = csv.split(",")   # ['apple','banana']
  3. joined = "-".join(fruits) # apple-banana
复制代码

### 字符串格式化:%、format()、f-string
传统 `%` 格式化:
  1. print("姓名:%s,年龄:%d" % ("张三", 25))
复制代码
`format()` 支持位置和关键字参数:
  1. print("姓名:{},年龄:{}".format("李四", 30))
  2. print("圆周率:{:.2f}".format(3.14159))
复制代码
Python 3.6+ 推荐 f-string:
  1. name = "王五"
  2. age = 28
  3. print(f"姓名:{name},明年{age+1}岁")
  4. print(f"身高:{1.75:.2f}米")
复制代码

### 字符串检查方法
`isalnum()`、`isalpha()`、`isdigit()`、`isupper()`、`islower()`、`istitle()`、`isspace()`、`isascii()` 等用于类型判断。
  1. print("Python123".isalnum())  # True
  2. print("12345".isdigit())      # True
  3. print("HELLO".isupper())      # True
复制代码

### 转义字符与原始字符串
常用转义:`\n` 换行,`\t` 制表符,`\"` 双引号,`\\` 反斜杠。原始字符串(`r`前缀)避免转义,常用于路径和正则。
  1. path = r"C:\Users\Documents\file.txt"
  2. print(path)
复制代码

### 编码与解码
字符串转字节用 `encode()`,字节转字符串用 `decode()`,需指定编码(如 UTF-8、GBK)。
  1. text = "你好,世界!"
  2. utf8_bytes = text.encode("utf-8")
  3. print(utf8_bytes.decode("utf-8"))
复制代码

### 性能优化与常见陷阱
大量字符串连接时,使用 `join()` 替代 `+`,因为字符串不可变,`+` 会不断创建新对象。
  1. # 推荐
  2. parts = []
  3. for i in range(10000):
  4.     parts.append(str(i))
  5. result = "".join(parts)
复制代码
子串检查用 `in` 而非 `find()`:
  1. if "Python" in text:
  2.     print("包含")
复制代码

### 实战示例
数据清洗:去除首尾和多余空格,首字母大写。
  1. def clean_string(text):
  2.     text = text.strip()
  3.     text = " ".join(text.split())
  4.     return text.capitalize()
  5. print(clean_string("  python  教程 "))  # Python 教程
复制代码
密码强度检查:综合长度、大小写、数字、特殊字符。
  1. def check_password_strength(pwd):
  2.     if len(pwd) < 8:
  3.         return "太短"
  4.     has_upper = any(c.isupper() for c in pwd)
  5.     has_lower = any(c.islower() for c in pwd)
  6.     has_digit = any(c.isdigit() for c in pwd)
  7.     has_special = any(not c.isalnum() for c in pwd)
  8.     score = sum([has_upper, has_lower, has_digit, has_special])
  9.     return ["弱","中","强"][min(score,2)]
  10. print(check_password_strength("Abc123!@#"))  # 强
复制代码
提取文件扩展名:使用 `rsplit` 分割一次。
  1. def get_extension(filename):
  2.     if "." not in filename:
  3.         return ""
  4.     parts = filename.rsplit(".", 1)
  5.     return parts[1].lower()
  6. print(get_extension("document.PDF"))  # pdf
复制代码

掌握这些操作,可以高效处理文本数据。记住:字符串不可变,f-string 最简洁,`join()` 优于 `+`,编码明确指定。
回复

使用道具 举报

发表于 2 小时前 | 显示全部楼层

Re: Python字符串操作从入门到实践:基础语法与高效技巧

非常全面的教程,从基础创建到性能优化都讲得很清楚,尤其是 `split()` 和 `join()` 配合处理大量字符串的技巧,还有 f-string 的推荐,都是日常写代码时容易踩坑但又很实用的点。密码强度检查的那个例子也很直观,谢谢分享!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-6-11 12:23 , Processed in 0.030314 second(s), 17 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部