Python入门 - 字符串使用
常用操作

判断类型
print(type("abc")) # <class 'str'> print(type("abc") == str) # True print(isinstance("abc", str)) # True
遍历和长度
print(len("abc")) # 3 for c in "abc": print(c)
字符串拼接
a = "abc" b = "def" print(a + b) # abcdef print("-".join("123")) # 1-2-3
子串
print("abc12"[1]) # b print("abc12"[:3]) # abc print("abc12"[1:3]) # bc print("abc12"[:8]) # abc12 print("abc12"[0:5:2]) # ac2
查找
print("abc".startswith("ab")) # True print("abc".startswith("12")) # False print("abc".endswith("bc")) # True print("abc".endswith("23")) # False print("abcabc".find("ab")) # 0 print("abcabc".find("bc")) # 1 print("abcdef".find("bc", 1)) # 1 print("abcdef".find("bc", 2)) # -1 print("abcabc".rfind("ab")) # 3 print("abcdeabc".rfind("ab", 5)) # 5, beg_end表示在字符串的哪一段范围找 print("abcdeabc".rfind("ab", 6)) # -1 print("abcabc".index("ab")) # 0 print("abcabc".index("bc")) # 1 # print("abcabc".index("12")) # 找不到会抛异常 print("abcabc".rindex("ab")) # 3
替换
print("abcabc".replace("bc", "23")) # a23a23 print("abcabc".replace("bc", "23", 1)) # a23abc
大小写
print("abc".islower()) # True print("Abc".islower()) # False print("abc".isupper()) # False print("Abc".isupper()) # False print("ABC".isupper()) # True print("Abc".lower()) # abc print("Abc".upper()) # ABC print("Abc".swapcase()) # aBC
分割
print("a_1 b_2 c_3".split(" ")) # ['a_1', 'b_2', 'c_3'] print("a_1 b_2 c_3".split(" ", 1)) # ['a_1', 'b_2 c_3'] print("a_1 b_2 c_3".rsplit(" ", 1)) # ['a_1 b_2', 'c_3'] print("line1\nline2\nline3\n".splitlines()) # ['line1', 'line2', 'line3'] print("line1\nline2\nline3\n".splitlines(True)) # ['line1\n', 'line2\n', 'line3\n']
去除两端空格,删除首尾空格
print(" abc ".strip()) # 'abc' print(" abc ".lstrip()) # 'abc ' print(" abc ".rstrip()) # ' abc'
填充
print("abc".zfill(5)) # 00abc print("abc".center(5, "0")) # 0abc0 print("abc".ljust(5, "0")) # abc00 print("abc".rjust(5, "0")) # 00abc
格式化输出
print("num is %d" % 1.2) # num is 1 print("num is '%5d'" % 12) # num is ' 12' print("num is '%05d'" % 12) # num is '00012' print("num is '%-5d'" % 12) # num is '12 ' print("percent %d%%" % 30) # percent 30% print("num is %d, %s" % (1.2, 2.1)) # num is 1, 2.1 print("num is %f" % 1.2) # num is 1.200000 print("num is %.2f" % 1.234) # num is 1.23 print("num is '%8.2f'" % 1.234) # num is ' 1.23' print("num is '%08.2f'" % 1.234) # num is '00001.23' print("num is '%-8.2f'" % 1.234) # num is '1.23 '
字面量格式化,就是以f开头的字符串,类似c#中的$开头的字符串,c#中叫插值格式化
print(f"a+b={1+2}") a = "hello" print(f"say {a}") num = 1.23 print(f"num is {num}")
format函数
print("{}身高{}".format("张三", 172)) # 张三身高172 print("{1}身高{0}".format(172, "张三")) # 张三身高172 print("num is {:08}".format(1.23)) # num is 00001.23 print("num is {:08.1f}".format(1.23)) # num is 000001.2 print("第1个字符为{[0]}".format("abc")) # a print("第2个字符为{0[1]}".format("abc")) # b
其他
# 统计出现次数 print("abca".count("a")) # 2 print("abca".count("ab")) # 1 print("abca".count("ad")) # 0 print(min("abc123ABC")) # 1 print(max("abc123ABC")) # c # 是否只有字母和数字 print("abc123".isalnum()) # True print("abc 123".isalnum()) # False print("abc+123".isalnum()) # False # 是否只有字母和文字 print("abc".isalpha()) # True print("abc中文".isalpha()) # True print("abc!!!".isalpha()) # False # 是否只有数字 print("1".isnumeric()) # True print("01".isnumeric()) # True print("0.1".isnumeric()) # False print("+1".isnumeric()) # False print("-1".isnumeric()) # False print("1.1".isnumeric()) # False print("abc".isnumeric()) # False print("123abc".isnumeric()) # False print("1".isdecimal()) # True print("01".isdecimal()) # True print("0.1".isdecimal()) # False print("+1".isdecimal()) # False print("-1".isdecimal()) # False print("1.1".isdecimal()) # False print("abc".isdecimal()) # False print("123abc".isdecimal()) # False print("1".isdigit()) # True print("01".isdigit()) # True print("0.1".isdigit()) # False print("+1".isdigit()) # False print("-1".isdigit()) # False print("1.1".isdigit()) # False print("abc".isdigit()) # False print("123abc".isdigit()) # False # 是否空格 print("abc".isspace()) # False print(" ".isspace()) # True print(" ".isspace()) # True print(" a".isspace()) # False print("a ".isspace()) # False

浙公网安备 33010602011771号