Python 字符串操作

Python 字符串操作

Python 字符串操作

概述

字符串是编程中最常用的数据类型之一,特别是在文本处理、数据清洗和自然语言处理等领域。掌握字符串操作是Python编程的基础技能。

字符串操作分类

字符串操作

基本操作

常用方法

格式化

编码处理

类型转换

高级操作

索引

切片

长度

大小写转换

查找替换

分割连接

判断方法

百分号格式化

format方法

f-string

编码

解码

数字转字符串

字符串转数字

对齐填充

迭代遍历

代码示例

#!/usr/bin/env python3# -*- coding: utf-8 -*-""" 文件名: string_operations.py 开发思路和开发过程: 1. 首先介绍字符串的基本操作(索引、切片等) 2. 然后演示字符串的常用方法 3. 接着展示字符串格式化方法 4. 最后介绍字符串与其他数据类型的转换 代码功能: 演示Python中字符串的各种操作方法,包括索引、切片、常用方法和格式化等。 """print("=== Python 字符串操作详解 ===\n")# 1. 字符串基本操作print("1. 字符串基本操作:") text ="Hello, Python World!"print(f"原始字符串: '{text}'")# 字符串索引(从0开始)print(f"第一个字符: '{text[0]}'")print(f"最后一个字符: '{text[-1]}'")# 字符串切片 [start:end:step]print(f"前5个字符: '{text[:5]}'")print(f"从第7个字符到最后: '{text[6:]}'")print(f"第7到第12个字符: '{text[6:12]}'")print(f"每隔一个字符: '{text[::2]}'")print(f"反转字符串: '{text[::-1]}'")# 字符串长度print(f"字符串长度: {len(text)}")print()# 2. 字符串常用方法print("2. 字符串常用方法:") sample_text =" Hello, Python! Welcome to the World of Python Programming. "print(f"示例字符串: '{sample_text}'")# 去除空白字符 stripped = sample_text.strip()print(f"去除首尾空白: '{stripped}'")# 大小写转换print(f"全部大写: '{stripped.upper()}'")print(f"全部小写: '{stripped.lower()}'")print(f"首字母大写: '{stripped.capitalize()}'")print(f"每个单词首字母大写: '{stripped.title()}'")# 查找和替换print(f"查找'Python'的位置: {stripped.find('Python')}")print(f"查找最后一个'Python'的位置: {stripped.rfind('Python')}")print(f"'Python'出现的次数: {stripped.count('Python')}")# 替换 replaced = stripped.replace('Python','Java')print(f"将'Python'替换为'Java': '{replaced}'")# 分割和连接 words = stripped.split()print(f"按空格分割: {words}") sentence ="Python,is,awesome" split_by_comma = sentence.split(',')print(f"按逗号分割: {split_by_comma}") joined ='-'.join(words[:4])# 连接前4个单词print(f"用'-'连接前4个单词: '{joined}'")# 判断方法print(f"是否以'Hello'开头: {stripped.startswith('Hello')}")print(f"是否以'Programming.'结尾: {stripped.endswith('Programming.')}")print(f"是否全为字母: {'Hello'.isalpha()}")print(f"是否全为数字: {'123'.isdigit()}")print(f"是否全为字母或数字: {'Hello123'.isalnum()}")print()# 3. 字符串格式化print("3. 字符串格式化:") name ="张三" age =25 city ="北京"# 1. 百分号格式化(老式方法) old_style ="姓名: %s, 年龄: %d, 城市: %s"%(name, age, city)print(f"百分号格式化: {old_style}")# 2. str.format() 方法 format_method ="姓名: {}, 年龄: {}, 城市: {}".format(name, age, city)print(f"format方法: {format_method}")# 3. f-string(推荐方法,Python 3.6+) f_string =f"姓名: {name}, 年龄: {age}, 城市: {city}"print(f"f-string: {f_string}")# 格式说明符 pi =3.141592653589793print(f"π的值(保留2位小数): {pi:.2f}")print(f"π的值(科学计数法): {pi:.2e}") number =42print(f"数字补零(5位): {number:05d}")print()# 4. 字符串编码和解码print("4. 字符串编码和解码:") chinese_text ="你好,世界!"print(f"中文字符串: {chinese_text}")# 编码为bytes encoded = chinese_text.encode('utf-8')print(f"UTF-8编码: {encoded}")# 解码为字符串 decoded = encoded.decode('utf-8')print(f"UTF-8解码: {decoded}")print()# 5. 多行字符串和转义字符print("5. 多行字符串和转义字符:")# 使用转义字符 escape_example ="第一行\n第二行\t制表符\\反斜杠"print("转义字符示例:")print(escape_example)# 使用原始字符串(忽略转义字符) raw_string =r"C:\Users\张三\Documents"print(f"原始字符串: {raw_string}")# 多行字符串 multi_line =""" 这是多行字符串的第一行 这是第二行 这是第三行 """print("多行字符串:")print(multi_line)print()# 6. 字符串与其他数据类型的转换print("6. 字符串与其他数据类型的转换:")# 数字转字符串 num =123.456 num_str =str(num)print(f"数字 {num} 转字符串: '{num_str}'")# 字符串转数字 str_int ="123" str_float ="45.67" converted_int =int(str_int) converted_float =float(str_float)print(f"字符串 '{str_int}' 转整数: {converted_int}")print(f"字符串 '{str_float}' 转浮点数: {converted_float}")# 列表转字符串 my_list =['apple','banana','orange'] list_str =','.join(my_list)print(f"列表 {my_list} 转字符串: '{list_str}'")# 字符串转列表 str_to_list = list_str.split(',')print(f"字符串 '{list_str}' 转列表: {str_to_list}")print()# 7. 字符串的高级操作print("7. 字符串的高级操作:")# 字符串对齐 text ="Python"print(f"居中对齐(20字符): '{text.center(20)}'")print(f"左对齐(20字符): '{text.ljust(20)}'")print(f"右对齐(20字符): '{text.rjust(20)}'")print(f"用*填充: '{text.center(20,'*')}'")# 字符串填充 number ="42"print(f"左侧补零(5位): '{number.zfill(5)}'")# 字符串检查 email ="[email protected]"print(f"邮箱格式检查 '{email}': {'@'in email and'.'in email}")# 字符串迭代 word ="Python"print(f"遍历字符串 '{word}':")for i, char inenumerate(word):print(f" 索引 {i}: '{char}'")print("\n=== 字符串操作详解结束 ===")

字符串处理流程

原始字符串

需要清洗?

去除空白strip

直接处理

需要格式化?

格式化处理

进一步处理

需要分割?

split分割

其他操作

处理分割结果

最终结果

字符串格式化对比

格式化方法语法示例优点缺点
% 格式化"Hello %s" % name兼容性好,适用于旧版本Python不直观,容易出错
format方法"Hello {}".format(name)功能强大,支持位置和命名参数语法稍复杂
f-stringf"Hello {name}"直观易读,性能好需要 Python 3.6+ 版本

学习要点

  1. 掌握基本操作:索引、切片、长度计算
  2. 熟练使用常用方法:大小写转换、查找替换、分割连接等
  3. 理解格式化方法:特别是推荐使用的f-string
  4. 处理编码问题:正确处理中文等非ASCII字符
  5. 掌握类型转换:字符串与其他数据类型的相互转换

实践建议

  1. 运行示例代码,观察各种字符串操作的输出结果
  2. 尝试修改字符串内容,观察结果变化
  3. 练习复杂的字符串处理场景
  4. 在实际项目中应用学到的字符串操作技巧

Read more

Flutter 组件 plural_noun 的适配 鸿蒙Harmony 实战 - 驾驭多语言复数语法转换、实现鸿蒙端国际化文案语义对齐方案

Flutter 组件 plural_noun 的适配 鸿蒙Harmony 实战 - 驾驭多语言复数语法转换、实现鸿蒙端国际化文案语义对齐方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 plural_noun 的适配 鸿蒙Harmony 实战 - 驾驭多语言复数语法转换、实现鸿蒙端国际化文案语义对齐方案 前言 在鸿蒙(OpenHarmony)生态的全球化应用开发中,面对上百个涉及金融对账、社交互动计数以及 IoT 设备状态反馈的文案展示。如果仅仅依靠写死的 count > 1 ? 'items' : 'item' 这种硬编码逻辑。那么不仅无法应对如俄语、阿拉伯语中极其复杂的复数变化规则(Case Variation)。更会因为文案在语义层面的“生硬感”引发严重的当地用户体验下降。 我们需要一种“语法感知、逻辑映射”的文本处理艺术。 plural_noun 是一套专注于跨平台应用开发、支持复杂语言复数转换规则的 Dart

By Ne0inhk
Flutter for OpenHarmony:queue 异步任务队列管理(并发控制与任务调度) 深度解析与鸿蒙适配指南

Flutter for OpenHarmony:queue 异步任务队列管理(并发控制与任务调度) 深度解析与鸿蒙适配指南

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 在 Dart 中,异步操作(Future)通常是并发执行的。如果你在一个 for 循环里发起了 100 个网络请求: for(var url in urls){fetch(url);// 瞬间发出100个请求} 这会导致什么? 1. 服务器爆炸:可能触发 API速率限制(429 Too Many Requests)。 2. 客户端OOM:瞬间创建过多的 Socket 连接和 Buffer。 3. UI 卡顿:大量的 Event Loop 任务阻塞。 我们需要一种机制来限制并发数,或者让任务串行执行。 queue

By Ne0inhk
Flutter 三方库 http_cache_drift_store 的鸿蒙化适配指南 - 实现基于 Drift 的高性能 HTTP 缓存控制、支持本地持久化网络内容与端侧弱网访问体验优化

Flutter 三方库 http_cache_drift_store 的鸿蒙化适配指南 - 实现基于 Drift 的高性能 HTTP 缓存控制、支持本地持久化网络内容与端侧弱网访问体验优化

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 http_cache_drift_store 的鸿蒙化适配指南 - 实现基于 Drift 的高性能 HTTP 缓存控制、支持本地持久化网络内容与端侧弱网访问体验优化 前言 在进行 Flutter for OpenHarmony 开发时,网络请求的响应速度和在离线状态下的可用性直接决定了应用的品质。虽然内存缓存能解决部分问题,但退出应用即消失。http_cache_drift_store 是一款强大的持久化缓存库,它利用 Drift(原 moor)这一高性能 SQL 引擎作为存储底座,为 HTTP 请求提供了坚固的“本地镜像”。本文将探讨如何在鸿蒙端构建极致的网络数据缓存层。 一、原原理性解析 / 概念介绍 1.1

By Ne0inhk

macos如何升级到指定版本,而不是默认最新的版本。我的现在为15.3,如何升级到15.4,而不是最新的15.54

明白了,你想从 macOS 15.3 升级到 15.4,而不想升级到 15.5。 ❗苹果的默认行为:只提供最新版 苹果的 “系统设置 → 软件更新” 会默认只提供最新版本(目前是 15.5),不支持选择旧版本(比如 15.4)。 不过,有办法可以手动下载并安装 macOS 15.4 安装器,你可以绕过这一限制。 ✅ 方法:使用终端命令下载 macOS 15.4 安装器 步骤: 1. 打开 终端(Terminal) 2. 运行以下命令(需要管理员权限): softwareupdate --fetch-full-installer --full-installer-version 15.4

By Ne0inhk