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

 

 

posted @ 2023-07-21 00:09  yanghui01  阅读(27)  评论(0)    收藏  举报