当前位置: 首页 > news >正文

Python字符串常用内置函数详解

文章目录

  • Python字符串常用内置函数详解
    • 一、基础字符串函数
      • 1. `len()` - 获取字符串长度
      • 2. `ord()` - 获取字符的Unicode码点
      • 3. `chr()` - 通过Unicode码点获取字符
      • 4. `ascii()` - 获取字符的ASCII表示
    • 二、类型转换函数
      • 1. `str()` - 将对象转为字符串
      • 2. `repr()` - 获取对象的官方字符串表示
    • 三、格式化函数
      • 1. `format()` - 高级字符串格式化
      • 2. `bytes()` - 创建字节串
      • 3. `bytearray()` - 创建可变字节数组
    • 四、高级字符串函数
      • 1. `eval()` - 执行字符串中的表达式
      • 2. `exec()` - 执行字符串中的代码
      • 3. `hash()` - 获取字符串的哈希值
    • 五、输入输出函数
      • 1. `input()` - 获取用户输入(返回字符串)
      • 2. `print()` - 输出字符串
    • 六、字符串编码函数
      • 1. `open()` - 文件操作(与字符串密切相关)
    • 七、实际应用案例
      • 案例1:生成随机密码
      • 案例2:简单计算器
      • 案例3:字符串加密
    • 八、函数对比表
    • 九、注意事项
    • 十、总结

Python字符串常用内置函数详解

除了字符串方法外,Python还提供了一些强大的内置函数来处理字符串。这些函数就像是Python的"工具箱",能帮你完成各种字符串操作任务。下面我将详细讲解这些函数的使用方法和实际应用。

一、基础字符串函数

1. len() - 获取字符串长度

text = "Hello, 世界"
length = len(text)  # 返回字符数(注意:中文每个字符算1个长度)
print(length)  # 输出: 8 (H,e,l,l,o,,, ,世,界)

2. ord() - 获取字符的Unicode码点

print(ord("A"))  # 输出: 65
print(ord("中"))  # 输出: 20013

3. chr() - 通过Unicode码点获取字符

print(chr(65))   # 输出: A
print(chr(20013))  # 输出: 中

4. ascii() - 获取字符的ASCII表示

print(ascii("A"))  # 输出: 'A'
print(ascii("中"))  # 输出: '\u4e2d'

二、类型转换函数

1. str() - 将对象转为字符串

可以将其他类型的数据转为字符串

num = 42
pi = 3.14159
lst = [1, 2, 3]print(str(num))  # 输出: "42"
print(str(pi))   # 输出: "3.14159"
print(str(lst))  # 输出: "[1, 2, 3]"

2. repr() - 获取对象的官方字符串表示

原样输出字符串的内容

text = "Hello\nWorld"
print(str(text))   # 输出: Hello#        World
print(repr(text))  # 输出: 'Hello\nWorld'

三、格式化函数

1. format() - 高级字符串格式化

# 位置参数
print(format(3.1415926, ".2f"))  # 输出: 3.14# 千分位分隔
print(format(1234567, ","))  # 输出: 1,234,567print("{}的{}成绩是{}".format("张三", "数学", 95))
# 输出: 张三的数学成绩是95# 进制转换
print(format(255, "x"))  # 十六进制: ff
print(format(255, "b"))  # 二进制: 11111111

2. bytes() - 创建字节串

byte_data = bytes("你好", encoding="utf-8")
print(byte_data)  # 输出: b'\xe4\xbd\xa0\xe5\xa5\xbd'

3. bytearray() - 创建可变字节数组

ba = bytearray("ABC", encoding="ascii")
ba[0] = 88  # 可以修改
print(ba)  # 输出: bytearray(b'XBC')

四、高级字符串函数

1. eval() - 执行字符串中的表达式

result = eval("3 + 4 * 2")
print(result)  # 输出: 11# 注意: eval有安全风险,不要执行不可信的字符串

2. exec() - 执行字符串中的代码

code = """
for i in range(3):print(i)
"""
exec(code)
# 输出:
# 0
# 1
# 2

3. hash() - 获取字符串的哈希值

print(hash("hello"))  # 输出: 一个整数哈希值

五、输入输出函数

1. input() - 获取用户输入(返回字符串)

name = input("请输入你的名字: ")
print(f"你好, {name}!")

2. print() - 输出字符串

# 基本用法
print("Hello", "World")  # 输出: Hello World# 自定义分隔符
print("2023", "08", "15", sep="-")  # 输出: 2023-08-15# 自定义结束符
print("Loading", end="...")  # 输出: Loading... (不换行)

六、字符串编码函数

1. open() - 文件操作(与字符串密切相关)

# 写入字符串到文件
with open("test.txt", "w", encoding="utf-8") as f:f.write("这是一段测试文本")# 从文件读取字符串
with open("test.txt", "r", encoding="utf-8") as f:content = f.read()print(content)  # 输出: 这是一段测试文本

七、实际应用案例

案例1:生成随机密码

import randomdef generate_password(length=10):chars = []for _ in range(length):# 随机选择ASCII码33-126之间的可打印字符chars.append(chr(random.randint(33, 126)))return ''.join(chars)print(generate_password())  # 示例输出: `7J$kP9@qL!

案例2:简单计算器

def simple_calculator():while True:expr = input("请输入表达式(输入q退出): ")if expr.lower() == 'q':breaktry:result = eval(expr)  # 注意: 实际应用中应该用更安全的方式print(f"结果: {result}")except:print("无效的表达式")simple_calculator()

案例3:字符串加密

def caesar_cipher(text, shift):result = []for char in text:if char.isalpha():# 处理字母字符base = ord('A') if char.isupper() else ord('a')shifted = (ord(char) - base + shift) % 26 + baseresult.append(chr(shifted))else:# 非字母字符保持不变result.append(char)return ''.join(result)# 加密
encrypted = caesar_cipher("Hello, World!", 3)
print(encrypted)  # 输出: Khoor, Zruog!# 解密
decrypted = caesar_cipher(encrypted, -3)
print(decrypted)  # 输出: Hello, World!

八、函数对比表

函数作用示例返回值
len()获取长度len("abc")3
ord()字符转Unicodeord("A")65
chr()Unicode转字符chr(65)‘A’
str()转为字符串str(3.14)‘3.14’
repr()官方字符串表示repr("a\nb")“‘a\nb’”
format()高级格式化format(3.1415, ".2f")‘3.14’
eval()执行表达式eval("3+4")7
hash()计算哈希值hash("hello")整数

九、注意事项

  1. 安全风险eval()exec()可以执行任意代码,不要用于处理用户输入
  2. 编码问题:处理文件时总是明确指定编码(如encoding="utf-8")
  3. 性能考虑:大量字符串操作时考虑使用join()而非+
  4. 不可变性:字符串不可变,所有"修改"操作都返回新字符串

十、总结

Python字符串函数要点:

  1. 基础操作len(), ord(), chr(), str()
  2. 类型转换ascii(), repr(), bytes(), bytearray()
  3. 格式化输出format(), 配合print()
  4. 高级功能eval(), exec(), hash()
  5. 文件IOopen()与字符串编码密切相关

掌握这些内置函数,配合字符串方法,你将能高效处理各种文本处理任务!从简单的字符串操作到复杂的文本处理,这些工具都能大显身手。

相关文章:

  • 车道线检测----Lane-ATT
  • 在vue3中使用Cesium的保姆教程
  • C# NX二次开发-实体离散成点
  • 5G-A和未来6G技术下的操作系统与移动设备变革:云端化与轻量化的发展趋势
  • Qwen3技术报告
  • 【Opencv】canny边缘检测提取中心坐标
  • 利用 Amazon Bedrock Data Automation(BDA)对视频数据进行自动化处理与检索
  • 用PHP轻松调用RESTful API:详解请求与响应
  • 水电站出入库流量监测系统解决方案
  • 模拟jenkins+k8s自动化部署
  • MySQL8.x新特性:与mysql5.x的版本区别
  • 数据库行业竞争加剧,MySQL 9.3.0 企业版开始支持个人下载
  • Hue面试内容整理-示例编码题
  • MODBUS RTU调试助手使用方法详解
  • 基于React的高德地图api教程006:两点之间距离测量
  • MySQL刷题 day04
  • Maven Deploy的依赖与引用方的依赖不同
  • Leaflet 自定义瓦片地图与 PHP 大图切图算法 解决大图没办法在浏览器显示的问题
  • k8s部署实战-springboot应用部署
  • Golang基于反射的ioctl实现
  • 李伟任山东省委常委、省纪委书记
  • 悬疑剧背后的女编剧:创作的差异不在性别,而在经验
  • 会谈时间迟迟未定、核心议题存在分歧,俄乌“土耳其谈判”一波三折
  • 日本一季度实际GDP环比下降0.2%
  • 专访|韩国世宗研究所中国研究中心主任:李在明若上台将推行均衡外交
  • 青海规范旅游包车行为:不得引导外省籍旅游包车违规驻地运营