python基础——数据类型(三)字符串

本文最后更新于:1 年前

(一)概述:

字符串类型,也是文本序列类型,是Python中最常用的类型,在Python中是str类型。

在Python3.x版本中,字符串全部是由Unicode国际码构成的,是一个不可变序列,其存储位数全部为16位,不再有8位的ASCII码存储了。

但是如果需要在网络上传输或者保存到磁盘,这个序列需要变成以字节为单位的bytes。对于Python来说,bytes类型的数据只需要在字符串前面加上b前缀即可。

Unicode表示的str通过encode()方法可以编码为指定bytes,而bytes变为str可以统decode()方法转换。

注意:python中没有字符类型,单个字符默认为字符串类型。

格式化内容请参考python基础——输入和输出详解

本文无字符串函数讲解(太多了),可能以后会再补充博客进行单独说明~

1
2
3
4
5
6
7
8
9
10
11
12
13
a = "我"
b = "我".encode()
c = "a"
d = b"a"
print(a," ",type(a))
print(b," ",type(b))
print(c," ",type(c))
print(d," ",type(d))
# 输出结果:
# 我 <class 'str'>
# b'\xe6\x88\x91' <class 'bytes'>
# a <class 'str'>
# b'a' <class 'bytes'>

(二)形式:

  1. 单引号,形式为 '字符串内容 ',单引号内允许含有双引号。

  2. 双引号,形式为 "字符串内容 ",双引号内允许含有单引号。

  3. 三引号且均为单/双引号,此为长字符串,形式为 '''字符串内容 "'或者是"""字符串内容 """,此内容可以跨越多行,而且允许字符串包含换行符、制表符、单双引号(不会冲突)以及其他特殊字符,所有的空白字符也将包含在该字符串中。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
a = '1'
b = "1"
c = """1
2
3 ""
4"""
d = '''1
2
3 ''
4'''
print("name,a:",a)
print("name,b:",b)
print("name,c:",c)
print("name,d:",d)
# 运行结果:
# name,a: 1
# name,b: 1
# name,c: 1
# 2
# 3 ""
# 4
# name,d: 1
# 2
# 3 ''
# 4

(三)原始字符串:

在字符串或者长字符串的开头加上r/R前缀,字符串将会变为原始字符串。

在原始字符串中,反斜杠不再是转义字符,所有内容均保持不变。

但如果出现引号,反斜杠仍然会对引号进行转义,这会导致如果是结尾处出现反斜杠,会将后面的引号转义,导致没有结束引号而产生错误,且这个反斜杠没有办法转义自己,无法断开与后面引号的练习。

解决方法:利用字符串拼接,将最后一个\放到另一个非原始字符串中然后进行拼接即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
a = r"\n\n\n\n\n"
b = R"abcd\t"
c = r'\\aaa'
d = r"D:\pycharmwork"+"\\"
print(a)
print(b)
print(c)
print(d)
# 输出结果:
# \n\n\n\n\n
# abcd\t
# \\aaa
# D:\pycharmwork\

(四)转义字符:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
\n  :换行
\\ :反斜杠符号
\' :单引号
\" :双引号
\000:空
\a :响铃
\b :退格
\v :纵向制表符
\t :横向制表符
\r :回车
\f :换页
\oyy:八进制数,yy代表的字符,例如:\o12代表换行
\xyy:十六进制数,yy代表的字符,例如:\x0a代表换行
\other:其它的字符以普通格式输出
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
a = "\\"
b = "1\n2\n3"
c = "\"我\'"
d = "wi\000n" #\000相当于空格了
e = "1\t2\t3\t" #\t在制表
f = "1111\b\b\b" #\b将后面三个1退格而消失了
g = "\012 \x24" # \012相当于换行 \x24对于ASCII码对应的是$
h = "\v\v\v" # 就是纵向制表
i = "\r\r\r" #\r表示回车确定,无显示。
print("显示值:"+a,b,c,d,e,f,g,h,i,sep="\n显示值:")
# 输出结果:
# 显示值:\
# 显示值:1
# 2
# 3
# 显示值:"我'
# 显示值:wi n
# 显示值:1 2 3
# 显示值:1
# 显示值:
# $
# 显示值:

(五)字符串操作:

1
2
3
4
5
6
7
8
+        字符串连接   
* 重复输出字符串
[] 通过索引获取字符串中字符
[x:y] 截取字符串中的一部分,遵循左闭右开原则.
in 成员运算符-如果字符串中包含给定的字符返回True
not in 成员运算符-如果字符串中不包含给定的字符返回True
r/R 原始字符串
% 格式化字符串
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
a = "I"+" "+"Love"+"the world"+"!"
b = "帅" * 8
c = a[2]
d = a[0:6]
e = ""
f = ""
if c in a:
e="666"
else:
e="欧尼酱~"
if b not in a:
f="1"
else:
f="0"
print(a,b,c,d,e,f,sep="\n")
# 运行结果:
# I Lovethe world!
# 帅帅帅帅帅帅帅帅
# L
# I Love
# 666
# 1

python基础——数据类型(三)字符串
https://github.com/xiaohei07/xiaohei07.github.io/2023/03/19/python基础——数据类型(三)字符串/
作者
07xiaohei
发布于
2023年3月19日
许可协议