8、Python:字符串类型

Python中的字符串是不可变的序列,用于存储文本数据。字符串可以包含字母、数字、符号和空格。

字符串编码

在Python 3及以上版本中,默认的字符串编码是UTF-8。这意味着Python可以处理多种语言的字符,包括中文。

# 使用UTF-8编码创建字符串
s = "你好,世界!"
print(s)  # 输出: 你好,世界!

基本运算操作

字符串支持多种运算操作,包括连接(+)和重复(*)。

# 字符串连接
hello = "你好"
world = "世界"
print(hello + "," + world + "!")  # 输出: 你好,世界!

# 使用多个字符串连接
name = "小明"
greeting = "早上好"
sentence = name + "," + greeting + "!"
print(sentence)  # 输出: 小明,早上好!

# 字符串与数字连接,需要将数字转换为字符串
age = 20
age_str = str(age)
print("我" + age_str + "岁了。")  # 输出: 我20岁了。

# 字符串重复
laugh = "哈哈"
print(laugh * 3)  # 输出: 哈哈哈哈哈哈

 
# 字符串拼接列表中的元素
words = ["Python", "是", "有趣的"]
sentence = " ".join(words)
print(sentence)  # 输出: Python 是 有趣的

 
# 字符串连接和转义字符
quote = "他说:\"Python很棒!\""
print(quote)  # 输出: 他说:"Python很棒!"

# 字符串连接和Unicode字符
unicode_str = "这是一个笑脸符号:" + "\U0001F600"
print(unicode_str)  # 输出: 这是一个笑脸符号:😀


# 字符串长度
s = "Python编程"
print(len(s))  # 输出: 8

# 索引操作
print(s[0])  # 输出: P
print(s[-1])  # 输出: g

# 切片操作
print(s[2:5])  # 输出: thon

# in运算符
print("编" in s)  # 输出: True
print("程" not in s)  # 输出: False

# 遍历字符串中的每个字符
for char in s:
    print(char)

常用字符串处理方法

Python的字符串是不可变的序列,意味着一旦创建,它们的内容就不能更改。但Python提供了许多强大的字符串方法,可以帮助我们进行有效的字符串处理。

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

format() 方法允许你格式化选定的部分字符串。

# 使用format()方法插入变量
name = "世界"
greeting = "你好, {}!".format(name)
print(greeting)  # 输出: 你好, 世界!
2. 字符串分割 - split()

split() 方法通过指定分隔符对字符串进行切片,如果不指定分隔符,默认使用空格。

# 分割字符串
sentence = "Python 是 一门 强大 的 编程 语言"
words = sentence.split()
print(words)  # 输出: ['Python', '是', '一门', '强大', '的', '编程', '语言']
3. 字符串连接 - join()

join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。

# 字符串连接
words = ['Python', '真', '有趣']
sentence = ' '.join(words)
print(sentence)  # 输出: Python 真 有趣
4. 字符串替换 - replace()

replace() 方法替换字符串中的指定子串。

# 替换字符串中的文本
text = "Python 是 最好 的 编程 语言"
new_text = text.replace("最好", "最棒")
print(new_text)  # 输出: Python 是 最棒 的 编程 语言
5. 字符串查找 - find()

find() 方法检测字符串中是否包含子字符串,如果包含子字符串返回开始的索引值,否则返回-1。

# 查找子字符串
quote = "学习 Python 使我快乐"
index = quote.find("Python")
print(index)  # 输出: 3
6. 字符串大小写转换 - upper()lower()

upper() 方法将字符串中的小写字母转为大写字母。lower() 方法将字符串中的大写字母转为小写字母。

# 大小写转换
language = "Python"
print(language.upper())  # 输出: PYTHON
print(language.lower())  # 输出: python
7. 字符串去除空白 - strip()

strip() 方法用于移除字符串头尾指定的字符(默认为空格)。

# 去除字符串两端的空白
feedback = "   Python 是 最棒 的!   "
print(feedback.strip())  # 输出: Python 是 最棒 的!

当然可以,以下是一篇关于Python中转义字符的专栏文章,包括详细的解释和示例代码。


Python中的转义字符

在Python编程中,转义字符用于插入那些字符串中无法直接包含的字符。例如,换行符、制表符或特殊字符。这些转义字符都是以反斜杠 \ 开头。

1. 换行符 - \n

换行符 \n 用于在字符串中插入一个新行。

# 使用换行符
print("第一行\n第二行")
# 输出:
# 第一行
# 第二行
2. 制表符 - \t

制表符 \t 在字符串中插入一个水平制表位,通常用于对齐文本。

# 使用制表符
print("列1\t列2\t列3")
# 输出: 列1    列2    列3
3. 反斜杠 - \\

要在字符串中插入反斜杠本身,需要使用 \\

# 插入反斜杠
print("C:\\用户\\用户名")
# 输出: C:\用户\用户名

4. 单引号和双引号 - \'\"

在字符串中使用单引号和双引号时,可以使用 \'\" 来避免语法错误。

# 使用单引号和双引号转义字符
print('这是一个单引号(\')和一个双引号(\")')
# 输出: 这是一个单引号(')和一个双引号(")
5. 原始字符串 - r" " 或 r' '

原始字符串告诉Python忽略所有的转义字符,直接打印出字符串中的内容。

# 使用原始字符串
print(r"C:\用户\用户名")
# 输出: C:\用户\用户名
6. Unicode字符 - \uXXXX

Unicode转义字符允许你使用四位十六进制数 XXXX 来表示Unicode字符。

# 使用Unicode字符
print("\u4F60\u597D")  # "你好"的Unicode编码
# 输出: 你好

字符串的格式化

字符串格式化是编程中常见的需求,Python提供了多种方法来格式化字符串,使其更加灵活和强大。

1. 百分号格式化 - %

百分号(%)操作符是Python早期的字符串格式化方法,它通过在字符串中使用格式化指令来插入变量。

# 使用百分号格式化字符串
name = "世界"
greeting = "你好, %s!" % name
print(greeting)  # 输出: 你好, 世界!
2. str.format() 方法

str.format() 是一个更现代的字符串格式化方法,提供了更多的灵活性。

# 使用str.format()方法格式化字符串
name = "世界"
greeting = "你好, {}!".format(name)
print(greeting)  # 输出: 你好, 世界!
3. 字面量字符串插值 - f-string

从Python 3.6开始,引入了一种新的字符串格式化方法,称为字面量字符串插值或简称为f-string

# 使用f-string格式化字符串
name = "世界"
greeting = f"你好, {name}!"
print(greeting)  # 输出: 你好, 世界!
4. 模板字符串 - string.Template

string.Template 提供了一种简单的字符串替换机制,适用于需要处理用户提供的格式字符串的情况。

# 使用模板字符串
from string import Template
t = Template('你好, $name!')
greeting = t.substitute(name="世界")
print(greeting)  # 输出: 你好, 世界!
5. 格式化数字

数字的格式化是字符串格式化中的一个重要部分,可以控制数字的显示方式。

# 格式化数字
number = 123456.789
print(f"{number:,.2f}")  # 输出: 123,456.79
6. 格式化日期和时间

Python的datetime模块允许你格式化日期和时间信息。

# 格式化日期和时间
from datetime import datetime
now = datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S"))  # 输出: 当前年-月-日 时:分:秒

Python的字符串格式化功能非常强大,提供了多种方法来满足不同的需求。无论是简单的文本替换还是复杂的数据表示,Python的字符串格式化都能够胜任。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

20240502在WIN11下显示桌面

20240502在WIN11下显示桌面 2024/5/2 15:06 百度:WIN11 状态栏 右键 显示桌面 在WIN10下,可以在状态栏点击右键→“显示桌面”来最小化全部窗口,特别是我打开的浏览器的巨多的窗口! 但是在WIN11下,这个【显示桌面】怎…

2024五一杯数学建模B题思路代码文章教学-交通需求规划与可达率问题

交通需求规划与可达率问题 问题总结: 问题一:在一个小型交通网络中,给定的起点和终点之间的交通需求需分配到相应路径上。目标是最大化任意一条路段出现突发状况时的交通需求期望可达率。 问题二:在一个较大的交通网络中&#xff…

Linux-进程调度器

1. 前言 在计算机中,进程的数量远多于cpu的数量,所以就存在,多个进程抢占一个cpu的情况,所以就需要一套规则,决定这些进程被处理的顺序,这就叫做进程调度。 在我的简单理解下,其实就是把进程放…

普乐蛙景区vr体验馆VR游乐场设备身历其境体验

小编给大家推荐一款gao坪效产品【暗黑战车】,一次6人同乘,炫酷外观、强大性能和丰富内容适合各个年龄层客群,紧张刺激的VR体验让玩家沉浸在元宇宙的魅力中,无论是节假日还是平日,景区商场助力门店提高客流量和营收~ ◆…

实验三 .Java 语言继承和多态应用练习 (课内实验)

一、实验目的 本次实验的主要目的是通过查看程序的运行结果及实际编写程序,练习使用 Java 语言的继承特性。 二、实验要求 1. 认真阅读实验内容,完成实验内容所设的题目 2. 能够应用多种编辑环境编写 JAVA 语言源程序 3. 认真体会多态与继承的作用…

B+树详解与实现

B树详解与实现 一、引言二、B树的定义三、B树的插入四、B树的删除五、B树的查找效率六、B树与B树的区别和联系 一、引言 B树是一种树数据结构,通常用于数据库和操作系统的文件系统中。它的特点是能够保持数据稳定有序,其插入与修改拥有较稳定的对数时间…

WebGL/Cesium 大空间相机抖动 RTE(Relative to Eye)实现原理简析

在浏览器中渲染大尺寸 3D 模型:Speckle 处理空间抖动的方法 WebGL/Cesium 大空间相机抖动 RTE(Relative to Eye)实现原理简析 注: 相机空间和视图空间 概念等效混用 1、实现的关键代码 const material new THREE.RawShaderMaterial({uniforms: {cameraPostion: {…

【Qt QML】用CMake管理Qt工程

CMake是一个开源、跨平台的工具系列,用于构建、测试和打包软件。CMake使用简单的独立配置文件来控制软件编译过程。与许多跨平台系统不同,CMake被设计为与本地构建环境结合使用。 下面我们在CMake项目中使用Qt的最基本方法。首先,创建一个基本…

如何解决pycharm创建项目报错 Error occurred when installing package ‘requests‘. Details.

🐯 如何解决PyCharm创建项目时的包安装错误:‘requests’ 🛠️ 文章目录 🐯 如何解决PyCharm创建项目时的包安装错误:requests 🛠️摘要引言正文📘 **问题分析**🚀 **更换Python版本…

OpenCV 实现重新映射(53)

返回:OpenCV系列文章目录(持续更新中......) 上一篇:OpenCV 实现霍夫圆变换(52) 下一篇 :OpenCV实现仿射变换(54) 目标 在本教程中,您将学习如何: 一个。使用 OpenCV 函数 cv::remap 实现简…

Java Web 开发 - 掌握拦截器和监听器

目录 深入了解Java Web的拦截器和监听器 拦截器(Interceptor) 拦截器的使用场景 拦截器实例 思维导图 ​编辑 监听器(Listener) 监听器的使用场景 监听器类型 监听器实例 思维导图​编辑 总结 深入了解Java Web的拦截器…

C——双向链表

一.链表的概念及结构 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。什么意思呢?意思就是链表在物理结构上不一定是连续的,但在逻辑结构上一定是连续的。链表是由一个一个的节点连…

uniapp0基础编写安卓原生插件和调用第三方jar包和编写语音播报插件之使用jar包插件

前言 如果你不会编写安卓插件,你可以先看看我之前零基础的文章(uniapp0基础编写安卓原生插件和调用第三方jar包和编写语音播报插件之零基础编写安卓插件), 我们使用第三方包,jar包编写安卓插件 开始 把依赖包,放到某个模块的/libs目录(myTestPlug/libs) 还要到build…

java-函数式编程-函数对象

定义 什么是合格的函数?无论多少次执行函数,只要输入一样,输出就不会改变 对象方法的简写 其实在类中,我们很多参数中都有一个this,被隐藏传入了 函数也可以作为对象传递,lambda就是很好的例子 函数式接口中…

ROS实操:通信机制的实现

最近闲来无事,打算重温了一下ROS方面的相关知识。先前的学习都是一带而过,发现差不多都忘了,学习的不够深入。因此,在重温的同时,写下了这篇关于ROS架构的学习博客。 上一篇博客的链接为:ROS架构的学习【No…

如何利用有限的数据发表更多的SCI论文?——利用ArcGIS探究环境和生态因子对水体、土壤和大气污染物的影响

原文链接:如何利用有限的数据发表更多的SCI论文?——利用ArcGIS探究环境和生态因子对水体、土壤和大气污染物的影响https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247602528&idx6&snc89e862270fe54239aa4f796af07fb71&chksmfa82…

visio画图基本用法

添加图形 点击上面的箭头 添加一些基本的形状 添加连接点 点击这个 X 按住Ctrl,在想要的位置上添加连接点 更改线条样式 选中线条之后,右键 可以选择箭头样式 添加文本框 visio对象复制到word里面,画布存在大量空白问题 https://blog.…

【C语言】深入了解文件:简明指南

🌈个人主页:是店小二呀 🌈C语言笔记专栏:C语言笔记 🌈C笔记专栏: C笔记 🌈喜欢的诗句:无人扶我青云志 我自踏雪至山巅 文章目录 一、文件的概念1.1 文件名:1.2 程序文件和数据文件 二、数据文…

如何利用MCU自动测量单元提高大坝安全监测效率

大坝作为重要的水利基础设施,其安全性直接关系到人民群众的生命财产安全和社会的稳定发展。因此,对大坝进行实时、准确的安全监测至关重要。近年来,随着微控制器单元(MCU)技术的不断发展,其在大坝安全监测领域的应用也越来越广泛。…

数据结构——排序算法分析与总结

一、插入排序 1、直接插入排序 核心思想:把后一个数插入到前面的有序区间,使得整体有序 思路:先取出数组中第一个值,然后再用tmp逐渐取出数组后面的值,与前面的值进行比较,假如我们进行的是升序排序&…
最新文章