惬意上手Python —— 字符串详细介绍

目录

1. 字符串介绍

1.1 定义

1.2 特殊字符

1.3 特殊使用 

1.4 索引下标

1.5 遍历

2. 常见操作

2.1  格式化、剔除、计数

2.2 拼接与切割

2.3 查找和替换

2.4 转换大小写 

2.5 编码解码

2.6 字符判断

2.7 开始结尾

2.8 对齐

3. 切片 


1. 字符串介绍

 Python中的字符串是由一系列字符组成的。字符串是不可变的,这意味着一旦创建了一个字符串,就不能修改它的值。但是,可以通过连接、切片等方式操作字符串。例如:

# 连接字符串
str3 = str1 + ' ' + str2
print(str3)  # 输出:hello, world! 你好,世界!

# 切片操作
sub_str = str1[0:5]
print(sub_str)  # 输出:hello

1.1 定义

字符串的定义很简单,变量名 + 赋值运算符 + 引号。引号中可以放入任何字符,通常情况下都使用双引号。例如:

str1 = "这里是中国"    # 输出:这里是中国
str2 = 'Chinese'      # 输出:Chinese
str3 = "hello '小明'" # 输出:hello '小明'
str4 = '"金铲铲"'     # 输出:"金铲铲"

无论用双引号还是单引号都可定义字符串,单、双引号可以进行嵌套。 

1.2 特殊字符

常见的特殊字符有:\ 、\n、\t、\b、"""、"、'  。

转义字符: \

作用:转义字符的作用就是把特殊字符转换成普通的字符

# 对特殊字符进行转义
str = " \\, \\\\, \\n, \\t, \\b, \", \', \"\"\" "
print(str)

输出结果: \, \\, \n, \t, \b, ", ', """ 

特殊字符均被输出出来,因为使用了转义字符进行的转义。

换行符:\n

作用:加入字符串中输出时可进行换行

print("你\n好\n呀")

输出结果:你
                  好
                  呀

制表符:\t

 作用:相当于一个Tab的距离,目的是为了让输出内容对齐美观

print("1\t", "2\t", "3\t","45")
print("上山\t", "打\t", "老\t", "虎")

输出结果:

你会发现,使用了制表符,输出内容都是左对齐的。

退格符:\b

作用:使输出内容被退格 

print("老虎没打着\b")

输出结果:老虎没打

 引号:"""、"、'

作用:三引号、双引号、和单引号。都可用于定义字符串。""" 用于带格式的字符串,输出时会保留字符串的格式。双、单引号除了长得不一样,无任何区别。

str1 = """
        *
       ***
      *****
"""
str2 = "夜空中" \
       "最亮的星"
str3 = '请指引' \
       '我前行'
# 输出
print(str1)
print(str2)
print(str3)

输出结果:

三引号的内容格式被保留了,单、双引号中的内容是可以通过 \ 进行连接的。由于 PEP8编码规范规定单行字符串不要超过120个字符,所以可以使用 \ 连接换行字符串。

1.3 特殊使用 

有两种:

  1. 使用 + 将字符串拼接
  2. 使用 * 将字符串重复 

演示代码:

# 使用+拼接
str1 = "半岛" + "铁盒"
print(str1)
# 使用*重复
str2 = "她说 " * 3
print(str2)

输出结果:

半岛铁盒
她说 她说 她说  

1.4 索引下标

索引下标和之前讲过的列表相似,包括以下三点:

  1. 范围是从 0 至 len - 1,len即字符串的长度。
  2. 通过索引可以找到字符串中的任意一个字符。
  3. 索引越界时会有错误提示:string index out of range. 
# 输出字符串中每个字符的索引和对应字符1
str1 = "那是我日夜思念,深深爱着的人啊"
for element in str1:
    print(str1.index(element), element, end=" | ")
print()

# 通过索引查找字符
char = str1[3]
print(char)

输出结果:

 下标时从0开始的,最大时 len -1,并且索引 3 对应的元素时“日”。

1.5 遍历

 字符串的遍历和列表的遍历可以说是相同的,有两种方式。

  1. 直接对字符串遍历
  2. 通过索引遍历
# 直接对字符串遍历
str1 = "雨下整夜"
for i in str1:
    print(i, end="*")
print()

# 通过索引遍历
str2 = "我的爱溢出就像雨水"
for j in range(len(str2)):
    print(str2[j], end="^")

 输出结果:

2. 常见操作

2.1  格式化、剔除、计数

 通过使用format、strip、count 这些方法来实现。

format(): 将字符串格式化

strip(): 剔除开头和结尾的指定字符,默认剔除空格

count(): 统计字符串出现的次数,默认从开始到结尾,也可指定开始和结束位置(不包含)。

代码如下:

# format()
a = 10
b = 20
print(f"a={a},b={b}")
print("a={1},b={0}".format(a, b))

输出结果:a=10,b=20
                  a=10,b=20


# strip() lstrip()左 rstrip()右
# 剔除空格(默认),或指定字符
print("  hi  ".strip())
print("**hi**".lstrip("*"))
print("**hi**".rstrip("*"))

输出结果:hi
                  hi**
                  **hi


# count() 
# 统计索引4-6的 * 的个数,不包括6
print("**hi***".count(" ", 4, 6))

 输出结果:2

2.2 拼接与切割

 通过 join 和 split 实现。

join:拼接,拼接内容必须可被遍历。

split:切割,将字符串使用指定内容切割成列表。

# join 
print("python,".join("hello world"))
print("python,".join(["1", "2", "3"]))
# split()
str1 = "2024/1/14"
print(str1.split("/"))

输出结果: 

h秀e秀l秀l秀o秀 秀w秀o秀r秀l秀d
1啊2啊3

['2024', '1', '14']

2.3 查找和替换

查找:find 

# find(), 默认查找指定字符串第一次出现的位置,匹配失败返回 -1
print("**hi**".find("i"))
print("**hi**".rfind("h")) # 从右侧匹配第一个
print("**hi**".rfind("1"))

输出结果:

3
2
-1

还用另外一个查找 index,和 find 相似,差别就在 index 在查找不到时会直接报错。

 替换:replace

str1 = "他喜欢你,他喜欢你"
print(str1.replace("他", "我"))

输出结果:我喜欢你,我喜欢你

2.4 转换大小写 

  •  capitalize()  首字母转大写
  • title()  所有字符串单词首字母大写
  • upper()  全转大写
  • lower()  全转小写
  • swapcase()  大小写切换

2.5 编码解码

  •  encode() 编码 encoding = "" 编码方式
  • decode() 解码 解码时的编码方式要相同

2.6 字符判断

  •  isalpha() 是否全字符
  • isalnum() 是否是字符或数字
  •  isnumberic() 是全数字

2.7 开始结尾

  •  endswith() 是否以某字符串结尾
  • startwith() 是否以某字符串开始

返回结果是True或False。 

2.8 对齐

  •  center() 在指定宽度下居中,默认空格,也可指定字符
  •  ljust()  内容靠左,其它填充
  • rjust() 内容靠右
  •  zfill() 左边填充 zero

3. 切片 

切片是Python独有的, 是一种操作序列类型(如字符串、列表、元组等)的方法,它可以从序列中提取一部分元素生成一个新的序列。切片操作使用冒号分隔的起始和结束索引来指定要提取的元素范围。

 切片操作的语法如下:

sequence[start:end]

其中,start表示切片的起始索引,end表示切片的结束索引。需要注意的是,切片操作是左闭右开的,即包含起始索引对应的元素,但不包含结束索引对应的元素。

切片操作还可指定每次提取元素的间隔,如step表示步长。例如,sequence[start:end:step]表示从起始索引开始,每隔step个元素提取一个元素,直到结束索引的前一个元素。

字符串切片:

# 字符串切片
s = 'hello world'
print(s[0:5])  # 输出 'hello'
print(s[7:12])  # 输出 'world'
print(s[::2])  # 输出 'hlo ol'

输出结果:

hello
orld
hlowrd


列表切片:

# 列表切片
lst = [1, 2, 3, 4, 5]
print(lst[1:4])  # 输出 [2, 3, 4]
print(lst[:3])  # 输出 [1, 2, 3]
print(lst[::2])  # 输出 [1, 3, 5]

输出结果:
[2, 3, 4]
[1, 2, 3]
[1, 3, 5]


元组切片:

# 元组切片
tup = (1, 2, 3, 4, 5)
print(tup[1:4])  # 输出 (2, 3, 4)
print(tup[:3])  # 输出 (1, 2, 3)
print(tup[::2])  # 输出 (1, 3, 5)

输出结果:
(2, 3, 4)
(1, 2, 3)
(1, 3, 5)

终于写完了,内容好多啊,后面常见操作有些没给代码,读者可以试着手动编写一下,后续我会尽力补上,over,喜欢作者可以给个关注哦,持续更新中🌹🌹🌹 

  • 35
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值