一. 字符串
- 双引号中可以包括单引号,但不能包括双引号,需要使用转义字符。
print("my's cat") #打印 my's cat
#print("my"s cat") 错误用法
print("my\"s cat")
- 单引号中可以包括双引号,但不能包括单引号,也需要转义字符,同上。
- 原始字符串,所有转义字符无效,都是普通字符,什么单双引号都不是问题了,可以随便包括什么。
string_tmp = r'my\'s cat'
print(string_tmp) #打印就是原样 my\'s cat
- 三重引号之间都是字符串一部分,三个单引号之间不能再有三个单引号,三个双引号之间不能再有三个双引号。转义单双引号与直接使用单双引号效果相同。
string_tmp = """
my's(\s) name is xx"\"
''' can use in it
"""
三重引号主要用作多行注释,三重引号内部实际是字符串字面量,只是没有赋给某一个变量而已,所以它还是会占内存。
- 字符串像列表一样可以进行切片、索引、使用in/not in。字符串是不可变类型,所有试图更改字符串的操作都是非法的。
name = "san shi"
print(name[0:3]) #san
print("san" in name) #True
二. 字符串方法
- upper()、lower()、isupper()、islower()。
#upper(),返回一个新的字符串,且字母全部是大写,因为字符串是不可变类型
string_tmp = "SAn 123"
string_tmp = string_tmp.upper() #SAN 123
#isupper(),至少有一个字母且字母均为大写
print(string_tmp.isupper()) #True
#lower(),返回一个新的字符串,且字母全部是小写
string_tmp = string_tmp.lower() #san 123
#islower(),至少有一个字母且字母均为小写
print(string_tmp.islower()) #True
- isalpha():只包含字母且非空则返回True。
isalnum():只包含字母和数字且非空则返回True。
isdecimal():只包含数字且非空则返回True。
isspace():只包含空格、\n、\t且非空则返回True。
istitle():每个单词开头都是大写字母且剩余为小写则返回True。
"san shi".isalpha() #False,有一个空格
"sanshi".isalpha() #True
"sanshi123".isalnum() #True
"123456".isdecimal() #True
" \t \n".isspace() #True
"My Name Is San Shi".istitle() #True
- startswith()与endswith():顾名思义
"san shi".startswith("san ") #True
"san shi".endswith("shi") #True
- join()与split():字符串与列表之间转换使用,且列表中的值只能是字符串。
join:将指定字符串插入列表的每一个元素之间,组成一个字符串返回。
split:将字符串按照指定字符进行分割,返回字符串列表。默认以空白符分割。
" love ".join(["san", "shi"]) #san love shi
#" love ".join([0, 1]) error,数字不能相爱
"san \n \t shi".split() #['san', 'shi']
"san\nshi".split("\n") #['san', 'shi']
- rjust()、ljust()、center()
rjust():右对齐,剩余补指定字符,不指定默认补空格。
ljust():左对齐,剩余补指定字符,不指定默认补空格。
center():中心对齐,剩余补指定字符,不指定默认补空格。
"san".rjust(10, "7") #7777777san
"shi".ljust(10, "7") #shi7777777
"san".center(10, "7") #777san7777,我的版本是右边7多一个
- rstrip()、lstrip()、strip()
rstrip():删除右边给定字符,不指定默认删除空白。
lstrip():删除左边给定字符,不指定默认删除空白。
strip():删除两边给定字符,不指定默认删除空白。
删除的意思:一个一个字符判断,若字符在指定字符串中,便删除,如此循环。
"san shi \t \n".rstrip() #san shi
"san shi*?*?***???".rstrip("*?") #san shi
"\n \t san shi".lstrip() #san shi
"7777****????san shi*?777****".strip("7*?") #san shi
- 还有许多其他方法,请使用help(str)查看