python数据类型-字符串

2024-04-22 17:14:09 浏览数 (2)

开篇

哈喽大家好!歪小王又来分享了,今天开始,我将以一种幽默有趣的方式,跟大家一起重温下python基础

咱们的第一站,就是Python世界里最基础、最常用的元素——字符串!它就像乐高积木一样,是构建代码世界的必备材料。别看它只是一个个字符,掌握了它的操作方法,你就能用代码搭建出各种神奇的城堡!

创建字符串:给文字施魔法

在Python里,将文字变成字符串的方式非常简单:

  • 单引号大法: 'Hello, world!',简单明了!
  • 双引号大法: "Python is fun!",和单引号效果一样,随你喜好选择!
  • 三引号大法:
代码语言:javascript复制
"""这是一个多行字符串,
可以写诗,
也可以写代码。"""

三引号就像写作文一样,可以换行,非常方便。

访问字符串:精准定位每个字符

字符串就像一本字典,每个字符都有自己的编号,叫做索引。我们可以通过索引来精准访问字符串中的每个字符。例如:

  • string[0] 获取字符串 string 的第一个字符,结果为 'H'。
  • string[-1] 获取字符串 string 的最后一个字符,结果为 '!'。

想要获取字符串的一部分,可以使用切片的方法。例如:

  • string[1:5] 获取字符串 string 中第2到第5个字符,结果为 'ello'。
  • string[:5] 获取字符串 string 中前5个字符,结果为 'Hello'。
  • string[6:] 获取字符串 string 中从第7个字符开始到结尾的部分,结果为 'world!'。

字符串操作:像玩积木一样

  • 拼接 就像用胶水把积木粘在一起, 运算符可以将多个字符串连接成一个新的字符串。这种方法简单直观,适用于所有 Python 版本。
代码语言:javascript复制
first_name = "Alice"
last_name = "Wonderland"
full_name = first_name   " "   last_name  # 结果为 "Alice Wonderland"

你也可以用 = 运算符将一个字符串追加到另一个字符串的末尾.

代码语言:javascript复制
message = "Hello"
message  = ", world!"  # 结果为 "Hello, world!"
  • 格式化

格式化就像给积木上色,让你的字符串更加丰富多彩。Python 提供了多种格式化方法,适用于不同的场景和 Python 版本。

%-formatting (旧式字符串格式化)

%-formatting 是 Python 早期版本中常用的格式化方法,使用 % 运算符和占位符来插入变量和表达式。虽然这种方法在 Python 3 中仍然可用,但建议使用更现代的 f-string 或 str.format() 方法。

代码语言:javascript复制
name = "Bob"
age = 25
message = "Hi, I'm %s and I'm %d years old." % (name, age)
# 结果为 "Hi, I'm Bob and I'm 25 years old."

str.format() 方法 (Python 2.6 支持)

str.format() 方法是 Python 2.6 版本引入的,使用大括号 {} 作为占位符,并通过 .format() 方法传入对应的变量或表达式。

代码语言:javascript复制
name = "Charlie"
age = 30
message = "My name is {} and I am {} years old.".format(name, age)
# 结果为 "My name is Charlie and I am 30 years old."

str.format() 方法还支持多种格式化选项,例如指定宽度、精度、对齐方式等,可以更精确地控制字符串的输出格式。

f-string (YYDS的格式化字符串字面值) (Python 3.6 支持)

f-string 是 Python 3.6 版本引入的新特性,也是最简洁直观的格式化方法。直接在字符串中嵌入变量和表达式,使用 f 前缀和花括号 {} 作为占位符。

代码语言:javascript复制
name = "David"
age = 40
message = f"Hi, I'm {name} and I'm {age} years old."
# 结果为 "Hi, I'm David and I'm 40 years old."

你也可以在花括号内进行简单的计算或调用函数。

代码语言:javascript复制
price = 10.99
quantity = 2
total = f"Total price: ${price * quantity:.2f}"  # 结果为 "Total price: $21.98"
  • 重复

就像把相同的积木复制多份,* 运算符可以将一个字符串重复多次。这种方法适用于所有 Python 版本。

代码语言:javascript复制
word = "Python"
repeated_word = word * 3  # 结果为 "PythonPythonPython"

你可以使用这个技巧来创建分割线或其他重复模式。

代码语言:javascript复制
separator = "-" * 20
print(separator)  # 输出 "--------------------"
  • 成员运算符

就像检查一个积木是否在某个集合中,成员运算符 in 和 not in 可以用来判断一个字符或子串是否包含在另一个字符串中。这种方法适用于所有 Python 版本。

代码语言:javascript复制
text = "Hello, world!"
"world" in text  # 结果为 True
"python" not in text  # 结果为 True

这对于搜索和过滤字符串非常有用。

字符串方法:内置的魔法工具

Python还为字符串准备了一套魔法工具,让你轻松处理各种情况:

  • 查找:

find(substring, start=0, end=len(string)):查找子串 substring 第一次出现的位置,如果没有找到则返回 -1。

代码语言:javascript复制
text = "Python is fun!"
position = text.find("fun")  # 结果为 10
position = text.find("Java")  # 结果为 -1

index(substring, start=0, end=len(string)):与 find() 类似,但如果没有找到子串会抛出异常。

代码语言:javascript复制
text = "Python is fun!"
position = text.index("fun")  # 结果为 10
# text.index("Java")  # 会抛出 ValueError 异常

rfind(substring, start=0, end=len(string)):查找子串最后一次出现的位置。

代码语言:javascript复制
text = "banana"
position = text.rfind("a")  # 结果为 5

rindex(substring, start=0, end=len(string)):与 rfind() 类似,但如果没有找到子串会抛出异常。

代码语言:javascript复制
text = "apple pie"
# 查找 'p' 最后一次出现的位置 (索引 6)
position = text.rindex("p")
# 查找不存在的子串 'z' 会引发 ValueError 异常
text.rindex("z")
  • 替换:

replace(old, new, count=-1):将字符串中的子串 old 替换为 new,count 指定替换的次数,默认替换所有出现的子串。

代码语言:javascript复制
text = "Hello, world!"
new_text = text.replace("world", "Python")  # 结果为 "Hello, Python!"
new_text = text.replace("o", "a", 1)  # 替换第一个 "o",结果为 "Hella, world!"
  • 大小写转换:

upper():将字符串转换为大写。

代码语言:javascript复制
text = "Python is fun!"
uppercase_text = text.upper()  # 结果为 "PYTHON IS FUN!"

lower():将字符串转换为小写。

代码语言:javascript复制
text = "Python is Fun!"
lowercase_text = text.lower()  # 结果为 "python is fun!"

capitalize():将字符串首字母大写,其余字母小写。

代码语言:javascript复制
text = "python is fun!"
capitalized_text = text.capitalize()  # 结果为 "Python is fun!"

title():将字符串中每个单词的首字母大写。

代码语言:javascript复制
text = "python is fun!"
titled_text = text.title()  # 结果为 "Python Is Fun!"
  • 分割与连接:

split(sep=None, maxsplit=-1):按照分隔符 sep 将字符串分割成多个子串,maxsplit 指定最大分割次数。

代码语言:javascript复制
text = "apple,banana,cherry"
fruits = text.split(",")  # 结果为 ["apple", "banana", "cherry"]
fruits = text.split(",", maxsplit=1)  # 结果为 ["apple", "banana,cherry"]

rsplit(sep=None, maxsplit=-1):与 split() 类似,但从字符串的右侧开始分割。

代码语言:javascript复制
text = "apple/banana/cherry"
fruits = text.rsplit("/", maxsplit=1)  # 结果为 ["apple/banana", "cherry"]

join(iterable):将可迭代对象中的字符串连接成一个字符串,使用调用该方法的字符串作为连接符。

代码语言:javascript复制
fruits = ["apple", "banana", "cherry"]
text = "-".join(fruits)  # 结果为 "apple-banana-cherry"
  • 判断:

isalpha():判断字符串是否只包含字母。

代码语言:javascript复制
text = "Python"
is_alpha = text.isalpha()  # 结果为 True

isdigit():判断字符串是否只包含数字。

代码语言:javascript复制
text = "12345"
is_digit = text.isdigit()  # 结果为 True

isalnum():判断字符串是否只包含字母和数字。

代码语言:javascript复制
text = "Python123"
is_alnum = text.isalnum()  # 结果为 True

isspace():判断字符串是否只包含空白字符。

代码语言:javascript复制
text = "   "
is_space = text.isspace()  # 结果为 True
  • 去除空白字符:

strip([chars]):去除字符串开头和结尾的空白字符,chars 参数可以指定要移除的字符集。

代码语言:javascript复制
text = "  Hello, world!  "
stripped_text = text.strip()  # 结果为 "Hello, world!"

lstrip([chars]):去除字符串开头的空白字符。

代码语言:javascript复制
text = "  Hello, world!"
lstripped_text = text.lstrip()  # 结果为 "Hello, world!  "

rstrip([chars]):去除字符串结尾的空白字符。

代码语言:javascript复制
text = "  Hello, world!  "
rstripped_text = text.rstrip()  # 结果为 "  Hello, world!"

结语:无所不能的字符串应用

学会了字符串的魔法,就可以用Python做很多有趣的事情:

文本处理: 从写诗到写代码,从编辑文档到处理数据,字符串都是你的得力助手。

数据分析: 从读取文件到爬取网页,字符串可以帮你解析和处理各种数据,让你成为数据达人。

本期分享就到这里了,下期见!

0 人点赞