开篇
哈喽大家好!歪小王又来分享了,今天开始,我将以一种幽默有趣的方式,跟大家一起重温下python基础
咱们的第一站,就是Python世界里最基础、最常用的元素——字符串!它就像乐高积木一样,是构建代码世界的必备材料。别看它只是一个个字符,掌握了它的操作方法,你就能用代码搭建出各种神奇的城堡!
创建字符串:给文字施魔法
在Python里,将文字变成字符串的方式非常简单:
- 单引号大法: 'Hello, world!',简单明了!
- 双引号大法: "Python is fun!",和单引号效果一样,随你喜好选择!
- 三引号大法:
"""这是一个多行字符串,
可以写诗,
也可以写代码。"""
三引号就像写作文一样,可以换行,非常方便。
访问字符串:精准定位每个字符
字符串就像一本字典,每个字符都有自己的编号,叫做索引。我们可以通过索引来精准访问字符串中的每个字符。例如:
- 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 版本。
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做很多有趣的事情:
文本处理: 从写诗到写代码,从编辑文档到处理数据,字符串都是你的得力助手。
数据分析: 从读取文件到爬取网页,字符串可以帮你解析和处理各种数据,让你成为数据达人。
本期分享就到这里了,下期见!