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

news2025/5/17 16:59:53

文章目录

  • 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,567

print("{}的{}成绩是{}".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 random

def 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':
            break
        try:
            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 + base
            result.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()与字符串编码密切相关

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2377835.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RK3568-鸿蒙5.1与原生固件-扇区对比分析

编译生成的固件目录地址 ../openharmony/out/rk3568/packages/phone/images鸿蒙OS RK3568固件分析 通过查看提供的信息,分析RK3568开发板固件的各个组件及其用途: 主要固件组件 根据终端输出的文件列表,RK3568固件包含以下关键组件&#x…

常见激活函数——作用、意义、特点及实现

文章目录 激活函数的意义常见激活函数及其特点1. Sigmoid(Logistic 函数、S型函数)2. Tanh(双曲正切函数)3. ReLU(Rectified Linear Unit修正线性单元)4. Softmax5. Swish(Google 提出&#xff…

基于微信小程序的在线聊天功能实现:WebSocket通信实战

基于微信小程序的在线聊天功能实现:WebSocket通信实战 摘要 本文将详细介绍如何使用微信小程序结合WebSocket协议开发一个实时在线聊天功能。通过完整的代码示例和分步解析,涵盖界面布局、WebSocket连接管理、消息交互逻辑及服务端实现,适合…

小波变换+注意力机制成为nature收割机

小波变换作为一种新兴的信号分析工具,能够高效地提取信号的局部特征,为复杂数据的处理提供了有力支持。然而,它在捕捉数据中最为关键的部分时仍存在局限性。为了弥补这一不足,我们引入了注意力机制,借助其能够强化关注…

【无标题】威灏光电哲讯科技MES项目启动会圆满举行

5月14日,威灏光电与哲讯科技MES项目启动会在威灏光电总部隆重举行。威灏光电董事长江轮、总经理刘明星、哲讯科技总经理崔新华、副总王子文及双方项目组成员共同出席,标志着两家企业在数字化领域的第二次深度合作正式启航。 强强联手,二度合作…

display:grid网格布局属性说明

网格父级 &#xff1a;display:grid&#xff08;块级网格&#xff09;/ inline-grid&#xff08;行内网格&#xff09; 注意&#xff1a;当设置网格布局&#xff0c;column、float、clear、vertical-align的属性是无效的。 HTML: <ul class"ls02 f18 mt50 sysmt30&…

排序算法之高效排序:快速排序,归并排序,堆排序详解

排序算法之高效排序&#xff1a;快速排序、归并排序、堆排序详解 前言一、快速排序&#xff08;Quick Sort&#xff09;1.1 算法原理1.2 代码实现&#xff08;Python&#xff09;1.3 性能分析 二、归并排序&#xff08;Merge Sort&#xff09;2.1 算法原理2.2 代码实现&#xf…

Java 并发编程归纳总结(可重入锁 | JMM | synchronized 实现原理)

1、锁的可重入 一个不可重入的锁&#xff0c;抢占该锁的方法递归调用自己&#xff0c;或者两个持有该锁的方法之间发生调用&#xff0c;都会发生死锁。以之前实现的显式独占锁为例&#xff0c;在递归调用时会发生死锁&#xff1a; public class MyLock implements Lock {/* 仅…

基于对抗性后训练的快速文本到音频生成:stable-audio-open-small 模型论文速读

Fast Text-to-Audio Generation with Adversarial Post-Training 论文解析 一、引言与背景 文本到音频系统的局限性&#xff1a;当前文本到音频生成系统性能虽佳&#xff0c;但推理速度慢&#xff08;需数秒至数分钟&#xff09;&#xff0c;限制了其在创意领域的应用。 研究…

ADC深入——SNR、SFDR、ENOB等概念

目录 SNR&#xff08;Spurious‑Free Dynamic Range 信噪比&#xff09; ENOB&#xff08;Effective Number Of Bits 有效位&#xff09; SFDR&#xff08;Spurious‑Free Dynamic Range&#xff09; 感觉SNR和SFDR差不多&#xff1f;看看下图 输入带宽 混叠 带通采样/欠…

硬件厂商的MIB文档详解 | 如何查询OID? | MIB Browser实战指南-优雅草卓伊凡

硬件厂商的MIB文档详解 | 如何查询OID? | MIB Browser实战指南-优雅草卓伊凡 一、硬件厂商的MIB文档是什么&#xff1f; 1. MIB的本质&#xff1a;设备的”数据字典” MIB&#xff08;Management Information Base&#xff09; 是SNMP协议的核心数据库&#xff0c;定义了设备…

阿里开源通义万相 Wan2.1-VACE,开启视频创作新时代

0.前言 阿里巴巴于2025年5月14日正式开源了其最新的AI视频生成与编辑模型——通义万相Wan2.1-VACE。这一模型是业界功能最全面的视频生成与编辑工具&#xff0c;能够同时支持多种视频生成和编辑任务&#xff0c;包括文生视频、图像参考视频生成、视频重绘、局部编辑、背景延展…

小学数学题批量生成及检查工具

软件介绍 今天给大家介绍一款近期发现的小工具&#xff0c;它非常实用。 软件特点与出题功能 这款软件体积小巧&#xff0c;不足两兆&#xff0c;具备强大的功能&#xff0c;能够轻松实现批量出题。使用时&#xff0c;只需打开软件&#xff0c;输入最大数和最小数&#xff0c…

5.13/14 linux安装centos及一些操作命令随记

一、环境准备 VMware Workstation版本选择建议 CentOS 7 ISO镜像下载指引 虚拟机硬件配置建议&#xff08;内存/处理器/磁盘空间&#xff09; 二、系统基础命令 一、环境准备 1.VMware Workstation版本选择建议 版本选择依据 选择VMware Workstation的版本时&#xff0c…

Baklib加速企业AI数据智理转型

Baklib智理AI数据资产 在AI技术深度渗透业务场景的背景下&#xff0c;Baklib通过构建企业级知识中台架构&#xff0c;重塑了数据资产的治理范式。该平台采用智能分类引擎与语义分析模型&#xff0c;将分散在邮件、文档、数据库中的非结构化数据转化为标准化的知识单元&#xf…

基于协同过滤的文学推荐系统设计【源码+文档+部署】

基于协同过滤的文学推荐系统设计 摘要 随着信息技术的飞速发展和文学阅读需求的日益多样化&#xff0c;构建一个高效、精准的文学推荐系统变得尤为重要。本文采用Spring Boot框架&#xff0c;结合协同过滤算法&#xff0c;设计并实现了一个基于用户借阅行为和社交论坛互动的文学…

数据结构与算法——单链表(续)

单链表&#xff08;续&#xff09; 查找在指定位置之前插入结点在指定位置之后插入结点删除pos位置的结点删除pos位置之后的结点销毁 查找 遍历&#xff1a;pcur指向头结点&#xff0c;循环&#xff0c;当pucr不为空进入循环&#xff0c;pucr里面指向的数据为要查找的值的时候…

全面且深度学习c++类和对象(上)

文章目录 过程和对象类的引入&#xff0c;类的定义类的访问限定符及封装类的访问限定符封装 类的实例化类大小内存对齐规则&#xff1a; this指针this特性 过程和对象 C语言面向过程设计&#xff0c;c面向对象设计&#xff0c; 举例&#xff1a;洗衣服 C语言&#xff1a;放衣服…

开源情报如何成为信息攻防的关键资源

相比于传统情报&#xff0c;开源情报具有情报数量大、情报质量好、情报成本低、情报可用性强等优势。这是开源情报能够成为信息攻防关键资源的主要原因。 海量信息让开源情报具有更大潜力。一是开源情报体量巨大。信息化时代是信息爆炸的时代&#xff0c;网络上发布的各种信息…

【风控】用户特征画像体系

一、体系架构概述 1.1 核心价值定位 风控特征画像体系是通过多维度数据融合分析&#xff0c;构建客户风险全景视图的智能化工具。其核心价值体现在&#xff1a; 全周期覆盖&#xff1a;贯穿客户生命周期的营销、贷前、贷中、贷后四大场景立体化刻画&#xff1a;整合基础数据…