python 之 字符串的相关知识

news2024/12/26 22:29:27

在这里插入图片描述

文章目录

      • 字符串的创建
      • 基本操作
      • 字符串方法
      • 格式化字符串
      • 字符串不可变性
      • 编码和解码
      • 字符串方法详细介绍
      • 字符串方法列表
        • 1. `len()`
        • 2. 大小写转换方法
        • 3. 删除空白字符的方法
        • 4. 查找子字符串的方法
        • 5. 替换子字符串的方法
        • 6. 分割和连接字符串的方法
        • 7. 校验字符串内容的方法
      • 格式化详细介绍
      • 1. 旧式格式化方法 `%` 操作符
      • 2. `str.format()` 方法
      • 3. f-strings (格式化字符串字面值)

当涉及 Python 中的字符串时,有许多重要的概念和功能。字符串在 Python 中是不可变的序列,它们用于表示文本数据。以下是关于 Python 字符串的一些重要内容:

字符串的创建

在 Python 中,您可以使用单引号(' ')、双引号(" ")或三重引号(''' '''""" """)来创建字符串。

my_string = 'Hello, World!'
my_string_double_quotes = "Hello, World!"
my_multiline_string = '''This is a 
multi-line
string.'''

基本操作

  • 访问字符: 您可以使用索引访问字符串中的单个字符。

    print(my_string[0])  # 输出 'H'
    
  • 切片操作: 可以通过切片访问字符串的子集。

    print(my_string[7:12])  # 输出 'World'
    
  • 拼接: 使用加号 + 连接两个字符串。

    new_string = my_string + ' Welcome!'
    print(new_string)  # 输出 'Hello, World! Welcome!'
    
  • 重复: 使用乘号 * 复制字符串。

    repeated_string = my_string * 3
    print(repeated_string)  # 输出 'Hello, World!Hello, World!Hello, World!'
    

字符串方法

Python 提供了许多内置方法来处理字符串:

  • len(): 返回字符串长度。
  • lower(), upper(): 转换字符串为小写或大写。
  • strip(), lstrip(), rstrip(): 删除字符串开头、结尾或两端的空白字符。
  • split(): 将字符串拆分为子字符串,返回列表。
  • join(): 将列表中的字符串连接为一个字符串。
  • find(), index(): 查找子字符串在字符串中的索引。
  • replace(): 替换字符串中的子字符串。
example = "   Hello, World!   "
print(len(example))  # 输出 18
print(example.lower())  # 输出 '   hello, world!   '
print(example.strip())  # 输出 'Hello, World!'
print(example.split())  # 输出 ['Hello,', 'World!']

格式化字符串

  • f-strings: 在字符串前添加 fF 可以在字符串中插入变量。
    name = "Alice"
    age = 30
    print(f"My name is {name} and I'm {age} years old.")
    

字符串不可变性

字符串是不可变的,意味着一旦创建,就无法更改其内容。如果需要更改字符串,您实际上是创建了一个新的字符串。

my_string = "Hello"
my_string[0] = 'J'  # 这会引发错误,因为字符串不可更改

编码和解码

Python 使用 Unicode 来表示字符串,可以使用 encode() 方法将字符串编码为字节对象,以及使用 decode() 方法将字节对象解码为字符串。

utf_string = "Hello, 你好"
encoded_string = utf_string.encode('utf-8')
decoded_string = encoded_string.decode('utf-8')
print(encoded_string)  # 输出字节对象
print(decoded_string)  # 输出 'Hello, 你好'

字符串在 Python 中是一个重要且灵活的数据类型,其方法和功能让您能够处理和操作文本数据。

字符串方法详细介绍

在 Python 中,字符串是不可变对象,但有许多内置方法可以对字符串进行操作和处理。这些方法允许您执行各种任务,例如搜索子字符串、转换大小写、分割字符串等。以下是一些常用的字符串方法:

字符串方法列表

1. len()
  • 返回字符串的长度。
2. 大小写转换方法
  • upper(): 将字符串转换为大写。
  • lower(): 将字符串转换为小写。
  • capitalize(): 将字符串首字母大写。
my_string = "hello, World!"
print(my_string.upper())  # 输出 'HELLO, WORLD!'
print(my_string.lower())  # 输出 'hello, world!'
print(my_string.capitalize())  # 输出 'Hello, world!'
3. 删除空白字符的方法
  • strip(): 删除字符串两端的空白字符。
  • lstrip(): 删除字符串开头的空白字符。
  • rstrip(): 删除字符串末尾的空白字符。
example = "   Hello, World!   "
print(example.strip())  # 输出 'Hello, World!'
print(example.lstrip())  # 输出 'Hello, World!   '
print(example.rstrip())  # 输出 '   Hello, World!'
4. 查找子字符串的方法
  • find(): 返回子字符串第一次出现的索引位置,若未找到返回 -1。
  • index(): 返回子字符串第一次出现的索引位置,若未找到会引发异常。
my_string = "Hello, World!"
print(my_string.find('o'))  # 输出 4
print(my_string.find('x'))  # 输出 -1
print(my_string.index('W'))  # 输出 7
# print(my_string.index('X'))  # 这会引发异常,因为未找到子字符串
5. 替换子字符串的方法
  • replace(): 用新字符串替换原字符串中的特定子字符串。
my_string = "Hello, World!"
new_string = my_string.replace('World', 'Python')
print(new_string)  # 输出 'Hello, Python!'
6. 分割和连接字符串的方法
  • split(): 将字符串拆分为子字符串,并返回一个字符串列表。
  • join(): 将列表中的字符串连接为一个字符串。
my_string = "Hello, World!"
splitted = my_string.split(',')  # 以逗号为分隔符拆分字符串
print(splitted)  # 输出 ['Hello', ' World!']
new_string = ' '.join(splitted)  # 使用空格连接列表中的字符串
print(new_string)  # 输出 'Hello World!'
7. 校验字符串内容的方法
  • isalpha(): 检查字符串是否只包含字母。
  • isdigit(): 检查字符串是否只包含数字。
  • isalnum(): 检查字符串是否只包含字母和数字。
alpha_string = "OnlyLetters"
numeric_string = "12345"
alphanumeric_string = "LettersAnd123"
print(alpha_string.isalpha())  # 输出 True
print(numeric_string.isdigit())  # 输出 True
print(alphanumeric_string.isalnum())  # 输出 True

这些方法只是 Python 字符串方法的一部分。它们允许您执行各种操作来处理和操作字符串数据。

格式化详细介绍

当涉及字符串格式化时,Python提供了多种方法来创建格式化的字符串。其中包括旧式格式化方法(% 格式化符号)和更为现代和推荐的方法(str.format() 方法以及 f-strings)。下面是每种方法的详细说明以及相应的代码示例和注释:

1. 旧式格式化方法 % 操作符

这种方法使用 % 格式化符号在字符串中指示变量的插入位置,然后在右侧提供变量的值。它是较老的方式,但仍然有效。

name = "Alice"
age = 30

# 使用 %s 表示字符串,%d 表示整数
formatted_string = "My name is %s and I'm %d years old." % (name, age)
print(formatted_string)  # 输出 'My name is Alice and I'm 30 years old.'
  • %s 表示字符串格式。
  • %d 表示整数格式。

2. str.format() 方法

str.format() 方法是一种更灵活的字符串格式化方式,使用 {} 占位符指示变量的插入位置,然后使用 format() 方法将变量的值传递给字符串。

name = "Bob"
age = 25

# 使用 {} 作为占位符
formatted_string = "My name is {} and I'm {} years old.".format(name, age)
print(formatted_string)  # 输出 'My name is Bob and I'm 25 years old.'

str.format() 方法还支持位置参数和关键字参数,可以更加灵活地控制插入的顺序:

name = "Charlie"
age = 35

# 位置参数
formatted_string = "My name is {0} and I'm {1} years old.".format(name, age)
print(formatted_string)  # 输出 'My name is Charlie and I'm 35 years old.'

# 关键字参数
formatted_string = "My name is {name} and I'm {age} years old.".format(name="Dave", age=40)
print(formatted_string)  # 输出 'My name is Dave and I'm 40 years old.'

3. f-strings (格式化字符串字面值)

f-strings 是自 Python 3.6 开始引入的新方式,它允许在字符串前添加 fF 并在其中插入变量和表达式。

name = "Eve"
age = 20

# 在字符串前添加 f 来表示这是一个 f-string
formatted_string = f"My name is {name} and I'm {age} years old."
print(formatted_string)  # 输出 'My name is Eve and I'm 20 years old.'

f-strings 也支持内联表达式和函数调用:

a = 10
b = 15

# 在 f-string 中进行数学运算
formatted_string = f"The sum of a and b is {a + b}"
print(formatted_string)  # 输出 'The sum of a and b is 25'

这三种格式化字符串的方法在 Python 中都是有效的,选择其中一种通常取决于个人偏好和代码的特定情况。

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

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

相关文章

C++——搜索二叉树

作者:几冬雪来 时间:2023年11月7日 内容:C的搜索二叉树讲解 目录 前言: 什么是搜索二叉树: 搜索二叉树的增删查改: 搜索二叉树的定义初始化: 搜索二叉树增操作: 搜索二叉树找…

蓝桥杯算法竞赛系列第十章·nSum问题的代码框架

你好,我是安然无虞。 文章目录 一、两数之和变形题 二、三数之和三、四数之和 首先,何为nSum问题呢? nSum问题其实就是给你一个数组nums和一个目标和target,让我们从nums数组中选择n个数,使得这些数字之和等于target。…

Flink集群的搭建

1、Flink独立集群模式 1、首先Flink的独立集群模式是不依赖于Hadoop集群。 2、上传压缩包,配置环境: 1、解压: tar -zxvf flink-1.15.2-bin-scala_2.12.tgz2、配置环境变量:vim /etc/profileexport FLINK_HOME/usr/local/soft/fl…

C++深度优先搜索(DFS)算法的应用:树中可以形成回文的路径数

本文涉及知识点 深度优先搜索(DFS) 状态压缩 题目 给你一棵 树(即,一个连通、无向且无环的图),根 节点为 0 ,由编号从 0 到 n - 1 的 n 个节点组成。这棵树用一个长度为 n 、下标从 0 开始的数组 parent 表示&#…

3.2-Docker Image概述

常用docker命令: 查看docker image有哪些 docker image ls Image的获取方式

亚马逊云科技产品测评』活动征文|通过使用Amazon Neptune来预测电影类型初体验

文章目录 福利来袭Amazon Neptune什么是图数据库为什么要使用图数据库什么是Amazon NeptuneNeptune 的特点 快速入门环境搭建notebook 图神经网络快速构建加载数据配置端点Gremlin 查询清理 删除环境S3 存储桶删除 授权声明:本篇文章授权活动官方亚马逊云科技文章转…

jstat虚拟机统计信息监控工具

jstat虚拟机统计信息监控工具 1、jstat(JVM Statistics Monitorning Tool) 用于监控虚拟机各种运行状态信息的命令行工具。 它可以显示本地或远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据,它是运行期定位虚拟机 性能问题…

Lenovo联想IdeaPad 15 ALC7(82R4)2022款笔记本原装出厂Windows11预装系统镜像

下载链接:https://pan.baidu.com/s/1Pr2G42Sz1LKzgF8OcEBkPQ?pwd5ms2 提取码:5ms2 系统自带所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、联想电脑管家等预装程序 所需要工具:16G或以上的U盘 文件格式:…

centos7.9 postgresql 16.0 源码安装部署

postgresql 16.0 源码安装部署 环境准备 系统主机名IP地址centos7.9postgres192.168.200.56 软件准备 postgresql-16.0.tar.gz https://ftp.postgresql.org/pub/source/v16.0/postgresql-16.0.tar.gz依赖安装 yum -y install systemd-devel readline readline-devel zlib-devel…

探秘Python闭包与作用域

文章目录 闭包的定义与作用LEGB规则nonlocal与global关键字在Python的世界里,理解闭包(Closure)和作用域(Scope)是提升编程技巧和深度的一大步。这篇文章将带你深入了解闭包的神秘面纱,掌握LEGB规则,并使用nonlocal与global关键字来巧妙控制变量作用域。 闭包的定义与作…

MySQL中的刷脏机制详解

名词解释 脏页:当内存数据页跟磁盘数据页内容不一致的时候,我们称这个内存页为“脏页”。 干净页:内存数据写入到磁盘后,内存和磁盘上的数据页的内容就一致了,称为“干净页”。 LSN:称为日志的逻辑序列号(l…

万物社用户运营工具:无代码开发下的电商平台和CRM集成

简介:万物社与集简云的引领式连接 万物社,隶属于厦门头号云信息科技有限公司,是一家专注于互联网和相关服务的企业。在日常的业务运营中,万物社通过与集简云的无代码集成,实现了业务流程的自动化和智能化,…

学习笔记4——JVM运行时数据区梳理

学习笔记系列开头惯例发布一些寻亲消息 链接:https://baobeihuijia.com/bbhj/contents/3/192489.html 类装载器classLoader: 将本地的字节码文件.class 加载到内存方法区中成为元数据模板(两个class对象是否为同一个类要求:完整…

对话句子互动创始人李佳芮 | AIGC结合私域运营影响不可估量

“ 创业最核心的就是耐心” 口述 | 李佳芮 整理 | 小白&云舒 出品|极新 极新请文心一言分析了私域流量运营和chatbot当下的发展背景,它给出了以下答案: 1. 移动设备普及和网络速度提升:随着智能手机和移动互联网的普及&…

UE5.3实现1秒12帧风格的动画抽帧效果

现今一些卡通风格游戏会刻意模仿早期动画1秒12帧的播放效果,以营造较强的风格化体验,博主在UE5中实现了一下(左侧正常动画,右侧抽帧动画): 我们可以通过在UE中对导入设置进行一些修改,达到不改…

Android UI 开发·界面布局开发·案例分析

目录 ​编辑 1. 线性布局(LinearLayout) 2. 相对布局(RelativeLayout) 3. 表格布局(TableLayout) 4. 帧布局(FrameLayout) 5. 网格布局(GridLayout&#xff0…

AI:68-基于深度学习的身份证号码识别

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌在这个漫长的过程,中途遇到了不少问题,但是…

C语言编写一个程序采集招聘信息

因为在这里无法详细解释每行代码和步骤。但是,我可以给大家一个使用Python和requests库编写的简单爬虫程序的例子,它可以从网站上获取招聘信息。你可以根据这个例子,将其改写为使用C语言编写的爬虫程序。 import requests# 指定爬虫IP信息 pr…

二叉树的OJ题——C++

一、根据二叉树创建字符串 题目链接: 606. 根据二叉树创建字符串 - 力扣(LeetCode) 题目描述: 前序遍历二叉树,并且将结果存入到一个string中,并且要使用括号去分割和表示每个节点和子树之间的关系&…

大漠插件(二、Qt使用插件时注意事项)

本章目的 在上篇已经注册完毕大漠,那么怎么使用大漠来制作脚本,我选择了我最熟悉的Qt来开发,毕竟只是小软件,用脚本或者c都差不了多少。本章就是开发途中的一些坑。 本人开发环境是 win11 64、Qt 5.15.2安装了5.10.0的msvc2015 32…