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

07 Python 字符串全解析

文章目录

    • 一. 字符串的定义
    • 二. 字符串的基本用法
      • 1. 访问字符串中的字符
      • 2. 字符串切片
      • 3. 字符串拼接
      • 4. 字符串重复
      • 5.字符串比较
      • 6.字符串成员运算
    • 三. 字符串的常用方法
      • 1. `len()` 函数
      • 2. `upper()` 和 `lower()` 方法
      • 3. `strip()` 方法
      • 4. `replace()` 方法
      • 5. `split()` 方法
    • 四. 字符串的进阶用法
      • 1. 格式化字符串
      • 2. 字符串的转义字符
      • 3. 字符串的编码与解码
      • 4.原始字符串
      • 5.字符串的特色表示

在 Python 里,字符串属于内置的数据类型,用来表示文本数据。

一. 字符串的定义

在 Python 中,定义字符串的方式多样且灵活。单引号是常用的一种,如 str1 = ‘Hello, World!’,能简洁地包裹普通文本。双引号同样适用,str2 = “Python is great”,与单引号在功能上并无本质区别,主要用于满足不同场景下代码风格或字符串内容中包含单引号的情况 。而三引号则独具魅力,str3 = ‘’‘This is a multi - line string.’‘’,它允许创建多行字符串,对于需要保留格式的文本,如文档注释、诗歌等,极为便利。字符串中的字符类型丰富,除常见的英文字母、特殊符号外,中文字符、日文假名、希腊字母以及 Emoji 字符(如:💩、🐷、🀄️)等均可包含其中,极大拓展了字符串的表现力。。

# 使用单引号定义字符串
str1 = 'Hello, World!'
# 使用双引号定义字符串
str2 = "Python is great"
# 使用三引号定义多行字符串
str3 = '''This is a
multi - line string.'''

二. 字符串的基本用法

1. 访问字符串中的字符

字符串是一个序列,你可以通过索引来访问其中的字符,索引从 0 开始。可以精准访问其中字符

str4 = "Hello"
print(str4[0])  # 输出 'H'
print(str4[-1])  # 输出 'o',负索引表示从字符串末尾开始计数

2. 字符串切片

你可以使用切片来获取字符串的一部分。

str5 = "Python Programming"
print(str5[0:6])  # 输出 'Python'
print(str5[7:])  # 输出 'Programming'

3. 字符串拼接

可以使用 + 运算符来拼接两个或多个字符串。

str6 = "Hello"
str7 = " World"
print(str6 + str7)  # 输出 'Hello World'

4. 字符串重复

使用 * 运算符可以重复字符串。

str8 = "Hi"
print(str8 * 3)  # 输出 'HiHiHi'

5.字符串比较

可以使用比较运算符(如 ==、!=、<、>、<=、>=)对字符串进行比较。比较时是按照字符的 ASCII 码值逐字符进行比较的。

str9 = "apple"
str10 = "banana"
print(str9 == str10)  # 输出: False
print(str9 < str10)  # 输出: True,因为 'a' 的 ASCII 码值小于 'b'

6.字符串成员运算

使用 innot in运算符可以检查一个字符串是否包含另一个字符串

str11 = "hello python"
print("python" in str11) # 输出: True
print("javascript" not in str11) # 输出:True

三. 字符串的常用方法

1. len() 函数

用于返回字符串的长度。

str9 = "Python"
print(len(str9))  # 输出 6

2. upper()lower() 方法

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

str10 = "Hello"
print(str10.upper())  # 输出 'HELLO'
print(str10.lower())  # 输出 'hello'

3. strip() 方法

用于去除字符串首尾的空白字符。

str11 = "   Hello   "
print(str11.strip())  # 输出 'Hello'

4. replace() 方法

用于替换字符串中的指定子字符串。

str12 = "Hello, World"
print(str12.replace("World", "Python"))  # 输出 'Hello, Python'

5. split() 方法

根据指定的分隔符将字符串分割成一个列表。

str13 = "apple,banana,cherry"
print(str13.split(","))  # 输出 ['apple', 'banana', 'cherry']

四. 字符串的进阶用法

1. 格式化字符串

Python 提供了多种字符串格式化的方式,如旧式的 % 格式化、str.format() 方法和 f - 字符串。

旧式的 % 格式化

name = "Alice"
age = 25
print("My name is %s and I am %d years old." % (name, age))

str.format() 方法

name = "Bob"
age = 30
print("My name is {} and I am {} years old.".format(name, age))

f - 字符串(Python 3.6+)

name = "Charlie"
age = 35
print(f"My name is {name} and I am {age} years old.")

2. 字符串的转义字符

在字符串中,你可以使用转义字符来表示一些特殊字符,如换行符 \n、制表符 \t 等。

print("Hello\nWorld")  # 输出两行:Hello 和 World

3. 字符串的编码与解码

在 Python 中,字符串可以进行编码(将字符串转换为字节序列)和解码(将字节序列转换为字符串)。

str14 = "你好"
# 编码
bytes_str = str14.encode('utf-8')
# 解码
decoded_str = bytes_str.decode('utf-8')
print(decoded_str)  # 输出 '你好'

4.原始字符串

Python 中有一种以rR开头的字符串,这种字符串被称为原始字符串,意思是字符串中的每个字符都是它本来的含义,没有所谓的转义字符。例如,在字符串'hello\n'中,\n表示换行;而在r'hello\n'中,\n不再表示换行,就是字符\和字符n。大家可以运行下面的代码,看看会输出什么。

s1 = '\it \is \time \to \read \now'
s2 = r'\it \is \time \to \read \now'
print(s1)
print(s2)

说明:上面的变量s1中,\t\r\n都是转义字符。\t是制表符(table),\n是换行符(new line),\r是回车符(carriage return)相当于让输出回到了行首。对比一下两个print函数的输出,看看到底有什么区别!

5.字符串的特色表示

Python 中还允许在\后面还可以跟一个八进制或者十六进制数来表示字符,例如\141\x61都代表小写字母a,前者是八进制的表示法,后者是十六进制的表示法。另外一种表示字符的方式是在\u后面跟 Unicode 字符编码,例如\u9a86\u660a代表的是中文“骆昊”。运行下面的代码,看看输出了什么。

s1 = '\141\142\143\x61\x62\x63'
s2 = '\u9a86\u660a'
print(s1)
print(s2)

http://www.mrgr.cn/news/100134.html

相关文章:

  • 深度学习--循环神经网络RNN
  • 【自然语言处理与大模型】模型压缩技术之量化
  • 【器件专题1——IGBT第1讲】IGBT:电力电子领域的 “万能开关”,如何撑起新能源时代?
  • 0基础 | Proteus仿真 | 51单片机 | 继电器
  • 精益数据分析(23/126):把握创业阶段与第一关键指标
  • [Windows] 卡巴斯基Kaspersky 21.21.7.384 免费版
  • 【金仓数据库征文】-金仓数据库性能调优 “快准稳” 攻略:实战优化,让数据处理飞起来
  • Linux系统中命令设定临时IP
  • 七、web自动化测试03
  • 支持Function Call的本地ollama模型对比评测-》开发代理agent
  • Mybatis-Plus,IDEA2024版本
  • 分数线降低,25西电马克思主义学院(考研录取情况)
  • 【Python数据库编程实战】从SQL到ORM的完整指南
  • day01_编程语言介绍丶Java语言概述丶开发环境搭建丶常用DOS命令
  • R7周:糖尿病预测模型优化探索
  • linux离线部署open-metadata
  • RT Thread 发生异常时打印输出cpu寄存器信息和栈数据
  • txtai:全能AI框架
  • 线程函数库
  • windows服务器及网络:搭建FTP服务器