# 字符串定义
str01 = 'test01'
str02 = "test02"
str03 = '''test03'''
str04 = """test04"""
print(str01, str02, str03, str04)
python的字符串可以用单引号,双引号,三引号定义
'''''' 会被用于多行注释
\
在python中被用于转义字符
# 转义字符
print("test \n test")
print("test \\n test")
使用字符串后加中括号的方式切割字符串
# 切割字符串
print(str01[0:2]) # te
print(str01[1:2]) # e
print(str01[:2]) # te
print(str01[2:]) # st01
print(str01[:]) # test01
print(str01[2:-1]) # st0
[start : end] ,首位为0,末位为-1,start省略为从头开始,end省略为到结尾结束
区间范围为左闭右开
print(str01[0:3]) # tes
print(str01[0:3:2]) # ts
print(str01[0:3:1]) # tes
[start : end : step] 步进值意为每隔step个字符显示字符
print(str01[::-1]) # 10tset
print(str01 + str02) # test01test02
print(str01 - str02) # TypeError: unsupported operand type(s) for -: 'str' and 'str'
print(str01 * 2) # test01test01
print(str01 / 2) # TypeError: unsupported operand type(s) for /: 'str' and 'int'
常见的python字符串前缀有r、u、b、f
# r、u、b、f
print(r"test01\n") # test01\n
print(u"test01\n") # test01(换行)
print(b"test01\n") # b'test01\n'
print(f"{str01}") # test01
r\R 字符串:raw string(原始字符串)
转义字符会被认为是一个普通字符,常用于特殊的字符如换行符、正则表达式、文件路径。
u\U字符串:unicode string(unicode编码字符串)
表示该字符串是unicode编码,Python2中用在含有中文字符的字符串前,防止因为编码问题,导致中文出现乱码。另外一般要在文件开关标明编码方式采用utf8。Python3中,所有字符串默认都是unicode字符串。
b\B字符串:byte string(转换成bytes类型)
常用在如网络编程中,服务器和浏览器只认bytes类型数据
f\F字符串:format string(格式化字符串)
可以更方便的格式化字符串,比format()方法可读性高且使用方便
又称为统一码,unicode是一种国际组织制定能容纳所有文字和符号的字符编码方案。Unicode用数字0-0x10FFFF来映射这些字符,最多可以容纳1114112个字符,或者说有1114112个码位。码位就是可以分配给字符的数字。UTF-8、UTF-16、UTF-32都是将数字转换到程序数据的编码方案。
UTF是“UCS Transformation Format”的缩写,可以翻译成Unicode字符集转换格式,即怎样将Unicode定义的数字转换成程序数据
摘自https://m.hqew.com/tech/news_437203
用于格式化字符串,按顺序位置传入参数
print("{0},{1},{2}".format(str01, str02, 'test03'))
实例
# 示例1:两个数值相加
x = 4
y = 5
z = x + y
print("Output #2: 4 + 5 = {0:d}".format(z))
# 示例2:两个列表相加
a = [1 , 2 , 3 , 4]
b = ["first" , "second" , "third" , "fourth"]
c = a + b
print("Output #3: {0} + {1} = {2}".format(a , b , c))
输出结果:
D:\Anaconda\python.exe E:/PyCharmFile/pythonProject/basic/Demo01_.py
Output #2: 4 + 5 = 9.
Output #3: [1, 2, 3, 4] + ['first', 'second', 'third', 'fourth'] = [1, 2, 3, 4, 'first', 'second', 'third', 'fourth']
Process finished with exit code 0
示例1中,{}是占位符 ,{0}
表示format()参数列表中的第一个参数,即指代 z , {0:d}
表示指定z为整数类型
示例2中,{0}表示第一个参数a,{1}表示第二个参数b,{2}表示第三个参数c,因为这三个值都是列表,所以不用添:类型
函数 | 返回值和功能 |
---|---|
str.capitilaize() -> str | 返回字符串首字母大写,其他字母都为小写的格式 |
str.count(substring:str, start:int, end:int) -> int | 返回子字符串在字符串中的start 位置到end 位置出现了几次 |
bytes.decode(encoding:str, [error:str]) -> str | 编码,将bytes对象按固定的编码方法转换为字符串,error 参数规定是否报错 |
str.encode(encoding:str, [error:str]) -> bytes | 解码,将字符串对象按固定的编码方法转换为bytes对象,error 参数规定是否报错 |
len(str) -> int | 返回字符串str 的长度 |
str.find(substr:str, [start:int], [end:int]) -> int | 在str 中查找substr 的位置,start 为开始位置,end 为结束位置 |
str.replace(old:str, new:str, [count:int]) | 将str 中的oldstr 替换为newstr ,count 为替换次数,省略代表全部替换 |
str.split(sep:str, maxsplit:int) -> list[str] | 以sep 为分隔符切片,如果maxsplit 有指定值,则仅分割maxsplit 个字符串 |
str.startswith(prefix:str, start:int, end:int) | 判断字符串是否是以prefix 开头,start 和end 代表从哪个下标开始,哪个下标结束 |
str.endswith(prefix:str, start:int, end:int) | 判断字符串是否是以prefix 结尾,start 和end 代表从哪个下标开始,哪个下标结束 |
str.lower() | 将所有大写字符转换成小写 |
str.uppper() | 将所有小写字符转换成大写 |
sep.join(list:list) -> str | 通过sep 将list 拼接成str |
print('wYIYI'.capitalize()) # Wyiyi
print(str01.count('e', 0, 5)) # 1
print(str01.encode(encoding="utf-8", errors='strict')) # b'test01'
print(b'test01'.decode(encoding="utf-8", errors='strict')) # test01
print(len(str01)) # 6
str1 = "There is a string accessing example"
print(str1.find("a")) # 9
print(str1.find("a", 10, 20)) # 18
print(str1.replace("e", "a", 2)) # Thara is a string accessing example
print(str1.split(" ")) # ['There', 'is', 'a', 'string', 'accessing', 'example']
print(",".join(str1.split(" "))) # There,is,a,string,accessing,example