前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python数据类型-字符串

python数据类型-字符串

作者头像
歪小王
发布2024-04-22 17:14:09
1070
发布2024-04-22 17:14:09
举报
文章被收录于专栏:歪小王的测试成长之道

开篇

哈喽大家好!歪小王又来分享了,今天开始,我将以一种幽默有趣的方式,跟大家一起重温下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做很多有趣的事情:

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 歪小王的测试成长之道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 开篇
  • 创建字符串:给文字施魔法
  • 访问字符串:精准定位每个字符
  • 字符串操作:像玩积木一样
  • 字符串方法:内置的魔法工具
  • 结语:无所不能的字符串应用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档