当前位置: 首页 > 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)

相关文章:

  • Java从入门到“放弃”(精通)之旅——JavaSE终篇(异常)
  • AI 开发工具提示词集体开源!解锁 Cursor、Cline、Windsurf 等工具的核心逻辑
  • 鸿蒙应用开发证书考试的一点想法
  • 【Linux】gdb工具,Linux 下程序调试的 “透视眼”
  • C++学习:六个月从基础到就业——STL:函数对象与适配器
  • day003
  • Power BI仪表盘:一眼看懂关键数据
  • EFL格式|动态库加载 | 重谈地址空间(2)
  • Appium自动化开发环境搭建
  • JDBC 批处理与事务处理:提升数据操作效率与一致性的密钥
  • Linux进程学习【进程状态】
  • 使用springboot+easyexcel实现导出excel并合并指定单元格
  • 腾讯PC客户端面经
  • java配置
  • 自制了一个txtx文件格式(扩展版txt)
  • MySQL的日志--Undo Log【学习笔记】
  • Spring-Ai-McpSever从外到内
  • 26考研 | 王道 | 数据结构 | 第八章 排序
  • 【爬虫】DrissionPage-获取douyim用户下的视频
  • 时间复杂度分析
  • 广西给出最后期限:6月30日之前主动交代问题可从宽处理
  • 金正恩出席朝鲜人民军海军驱逐舰入水仪式
  • 江苏、安徽跨省联动共治“样板间”:进一扇门可办两省事
  • 国新办发布会丨2024年市监部门查办知产领域侵权行政违法案件4.4万件
  • 李公明︱一周书记:大学的价值、韧性以及……不相称的对抗
  • 对话地铁读书人|企业公关吴丑丑:阅读中相遇又重逢