表示方法
用“”或者‘’包裹起来的一串字符,为了和其他语言保持一致,Python尽量使用”“来表示。在编程语言中表示的是文本数据类型。
Python字符串注意点
- 若字符串本身需要出现”或者‘应使用\来转义;
- 实际使用过程中,如果字符串本身需要出现“,则在字符串定义的时候使用’‘来包裹不需要使用\转义;
- 实际使用过程中,如果字符串本身需要出现’,则在字符串定义的时候使用”“来包裹不需要使用\转义;
- 字符串的索引从0开始,同样可以使用索引来获取某个具体的字符;
- 字符串同样可以使用for循环来遍历所有的字符
str1 = "hello'world" str2 = 'hello"Python' for c in str1: print("str1 c:",c) for c in str2: print("str2 c:",c)
提一下
如果字符串本身既要有‘,又要用”,用“”或者’‘包裹都可以,但是“和’作为字符串本身值的部分需要转义。
str3 = "hello\' and world\"" print("str3:",str3) # str3: hello' and world" str4 = 'hello\" and world\'' print("str4:",str4) # str4: hello" and world'
字符串同样可以使用三个单引号或者双引号来定义
str5 = """三个双引号定义的字符串""" str6 = '''三个单引号定义的字符串''' print("str5:%s str6:%s" % (str5,str6))
切片
取出字符串的一部分。
str1 = "helloPython" # 格式 字符串[开始索引:结束索引],默认开始包含结束不包含 print("str1[0,5]:",str1[0:5]) # str1[0,5]: hello
如果截取到字符串最后一个字符,那么结束索引可以不写;
如果是用第一个索引开始,那么开始索引可以不写;
# 如果截取到字符串最后一个字符,那么结束索引可以不写; # 如果是用第一个索引开始,那么开始索引可以不写; print("str1[3:]",str1[3:]) # str1[3:] loPython print("str1[:3]",str1[:3]) #str1[3:] loPython print("str1[:]",str1[:]) # str1[:] helloPython print("str1:",str1) # str1: helloPython
含步长的切片索引:
字符串[开始索引:结束索引:步长],将要取到的字符等于上一个字符索引加上步长。开始索引一定小于结束索引。
str1 = "helloPython" # 字符串[开始索引:结束索引:步长],将要取到的字符等于上一个字符索引加上步长 print("str1[0::2]",str1[0::2]) # str1[0::2] hloyhn
灵活使用步长实现字符串反向输出
str1 = "helloPython" print("str1[::-1]:",str1[::-1]) # str1[::-1]: nohtyPolleh
原因是因为:(1)步长为负数时,起始索引和结束索引颠倒位置。
(2)字符串的最后一个字符可以使用str[-1]获得。
判断
方法 | 说明 |
---|---|
string.isalpha() | 如果 string 至少有一个字符并且所有字符都是字母则返回 True |
string.isdecimal() | 如果 string 只包含数字则返回 True |
string.islower() | 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True |
string.isupper() | 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True |
string.startswith(str) | 检查字符串是否是以 str 开头,是则返回 True |
string.endswith(str) | 检查字符串是否是以 str 结束,是则返回 True |
查找和替换
方法 | 说明 |
---|---|
string.find(str, start=0, end=len(string)) | 检测 str 是否包含在 string 中,如果 start 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回 -1 |
string.rfind(str, start=0, end=len(string)) | 类似于 find(),不过是从右边开始查找 |
string.index(str, start=0, end=len(string)) | 跟 find() 方法类似,不过如果 str 不在 string 会报错 |
string.rindex(str, start=0, end=len(string)) | 类似于 index(),不过是从右边开始 |
string.replace(old_str, new_str, num=string.count(old)) | 返回一个新字符串,把 string 中的 old_str 替换成 new_str,如果 num 指定,则替换不超过 num 次 |
拆分和连接
方法 | 说明 |
---|---|
string.partition(str) |
|
string.rpartition(str) | 类似于 partition() 方法,不过是从右边开始查找 |
string.split(str="", num) |
|
string.splitlines() | 返回列表,按照行('\r', '\n', '\r\n')分隔 |
string1 + string2 | 拼接两个字符串 |
string.join(seq) |
|
list = str1.split("3") print(list) # ['12', '456654', '21'] list = str1.split("3",1) print(list) # ['12', '456654321'] list = str1.split("9") print(list) # ['123456654321']
str1 = "[email protected]" tuple = str1.partition("@") print(tuple) # ('zhangsan', '@', '163.com') tuple = str1.partition("!") print(tuple) # ('[email protected]', '', '') tuple = str1.rpartition("@") print(tuple) # ('zhangsan', '@', '163.com')
str1 = "123456654321" list = ["hello","world"] sep = "*" str2 = sep.join(list) print(str2) # hello*world
大小写转换
方法 | 说明 |
---|---|
string.lower() | 返回新字符串,转换 string 中所有大写字符为小写 |
string.upper() | 返回新字符串,转换 string 中的小写字母为大写 |
文本对齐
方法 | 说明 |
---|---|
string.ljust(width) | 返回新字符串,基于原字符串左对齐,并使用空格填充至长度 width |
string.rjust(width) | 返回新字符串,基于原字符串右对齐,并使用空格填充至长度 width |
string.center(width) | 返回新字符串,基于原字符串居中,并使用空格填充至长度 width |
str = "========" print(str.ljust(20)) print(str.rjust(20)) print(str.center(20))
结果:
======== ======== ========
去除空白
str = " AAA BBB " print(str) print(str.lstrip()) print(str.rstrip()) print(str.strip()) AAA BBB AAA BBB AAA BBB AAA BBB