s = str("Hello Python World!!")
# Demo1 字符串拼接
s1_1 = "Hello Python World!!"
s1_2 = "Plus"
s1_3 = s1_1 + s1_2
print(s1_3)
# "Hello Python World!!Plus"
s1_3 = s1_1[0:5] + s1_2[3]
print(s1_3)
# "Hellos"
# 切片[0:5]包含第一个位置,不包含第二个位置
# Demo2 Capitalize 首字母大写
s2_1 = "hello world!!"
s2_2 = s2_1.capitalize()
print(s2_2)
# "Hello world!!"
# Demo3 casefold 字符全部统一大小写(这个不推荐用因为貌似会根据不同系统,转换成大写或者小写)
s3_1 = "HELLO PYTHON"
s3_2 = s3_1.casefold()
print(s3_2)
# "hello python"
# Demo4 center 第一个参数为生成的字符串的长度,第二个参数为填充的字符串
s4_1 = "Hello Python"
s4_2 = s4_1.center(20, '*')
print(s4_2)
# "****Hello Python****"
# Demo5 count 第一个参数是需要数的字符或者字符串,第二第三个参数是起始位置(包含)和结束位置(不包含)
# 返回值为有多少个
s5_1 = "Hello Python"
print(s5_1.count('l'))
# 2
print(s5_1.count('l', 2, 4))
# 2
print(s5_1.count('l', 0, 3))
# 1
# Demo6 endswith 以什么结尾
s6_1 = "Hello Python!!!"
print(s6_1.endswith("!!"))
# True
print(s6_1.endswith("!!", 0, 5))
# False
# Demo7 expandtabs 把制表符修改为空格,数字为几个空格
s7_1 = "tab\ttab\t!"
print(s7_1)
# tab tab !
print(s7_1.expandtabs(15))
# tab tab !
# Demo8 find 返回第一个找到的字符位置,找不到返回-1
s8_1 = "Hello World!!"
print(s8_1.find('l', 3))
# 3
# Demo9 index 该方法与find类似,但是如果没找到会报个错
s9_1 = "Hello Python!!!"
print(s9_1.index('l'))
# 2
# print(s9_1.index("?")) 找不到报错
# ValueError: substring not found
# Demo10 isalnum 检查字符串是否全部为数字字符或者字母字符
s10_1 = "1234"
s10_2 = "abcd123AD4"
s10_3 = "1!22"
print(s10_1.isalnum())
# True
print(s10_2.isalnum())
# True
print(s10_3.isalnum())
# False
# Demo11 isalpha 是否全部为字母字符
s11_1 = "abcdAbcd"
s11_2 = "Abcd1234"
s11_3 = "@abcdAbcd"
print(s11_1.isalpha())
# True
print(s11_2.isalpha())
# False
print(s11_3.isalpha())
# False
# Demo12 isdecimal 是否全部为数字字符
s12_1 = "123123"
s12_2 = "Abcd1234"
s12_3 = "@123123"
print(s12_1.isdecimal())
# True
print(s12_2.isdecimal())
# False
print(s12_3.isdecimal())
# False
# Demo13 isdigit 是否全部为数字字符,判断数字的有好几个,这个是对字符匹配最全的基本除了大写的一、二、这种其余都行,推荐就用这个
s13_1 = "123123"
s13_2 = "Abcd1234"
s13_3 = "@123123"
print(s13_1.isdigit())
# True
print(s13_2.isdigit())
# False
print(s13_3.isdigit())
# False
# Demo14 isidentifier 判断变量名是否合法
print("_a".isidentifier())
print("1A".isidentifier())
print("AAA".isidentifier())
# Demo15 islower 如果全部是小写字符返回True(测试下来,基本上只要不是大写字母都可以)
print("aavvdd".islower())
# True
print("Abbb".islower())
# False
print("{}@bbb!22我".islower())
# True
# Demo16 isspace 如果全部是空格,返回Ture
print(" ".isspace())
# True
print(" a a".isspace())
# True
print("a a ".isspace())
# True
# Demo17 istitle 首字母是否大写
print("Abvd".istitle())
# True
print("BdbB".istitle())
# False
print("abcd".istitle())
# False
print("1A1b".istitle())
# False
# Demo18 isupper 是否全部为大写(不考虑符号)如果出现小写,那就返回false
print("ABCD".isupper())
# Ture
print("Abcd".isupper())
# False
print("A@B!".isupper())
# True
# Demo19 join 这个蛮有意思的,在一个可迭代的容器内用给予的字符串分割
li = ["abcd", "AAA", "@@@", "bcda"]
print("我是分割线".join(li))
# abcd我是分割线AAA我是分割线@@@我是分割线bcda
# Demo20 ljust 左对齐
print("aaa".ljust(10, '*'))
# aaa*******
# Demo21 lower 把字符串全部改成小写
print("ABCD".lower())
# abcd
print("A@A#".lower())
# a@a#
print("aabs\Scd".lower())
# aabs\scd
# Demo22 lstrip 删除左边的空格或者字符
print(" aaaa".lstrip())
# aaaa
print("****abcd".lstrip('*'))
# abcd
print("ABCDssss".lstrip("ABCD"))
# ssss
# Demo23 maketrans 字符替代,将所有的字符都转换成所给字符
intab = "aeiou"
outab = "12345"
print("my wife is a pig hahaha".translate(str.maketrans(intab, outab)))
# my w3f2 3s 1 p3g h1h1h1
print("my wife is a pig hahaha".translate(str.maketrans({'a': '1', 'e': '2', 'i': '3', 'o': '4', 'u': '5'})))
# my w3f2 3s 1 p3g h1h1h1
# Demo24 partition 将字符串分割成三份,参数字符串为中间一份
print("ABCD1234abcd".partition("1"))
# ('ABCD', '1', '234abcd') 返回值是一个tuple
# Demo25 replace
print("aaaaa".replace('a', '1'))
# 11111
print("aaaaa".replace('a', '1', 2))
# 11aaa
print("aaaaa".replace("aa", "22", 2))
# 2222a
# Demo26 rfind 右起查找字符串或者字符
print("aaaaa".rfind('a'))
# 4
# Demo27 rindex 右起查找字符串或者字符,如果找不到会报错
print("aAaAaAa".rindex('a'))
# 6
try:
print("aAaAaAa".rindex('b'))
except Exception as e:
print(e)
# ValueError: substring not found
# Demo28 rjust 类似ljust
print("aaaa".rjust(10, '*'))
# ******aaaa
# Demo29 rpartition partition是从左开始找到指定字符串,然后分三段,rpartition是从右开始找
print("aabbccdd112211AABBCCDD".rpartition("11"))
# ('aabbccdd1122', '11', 'AABBCCDD')
# Demo30 rsplit 第一个参数分隔符,默认为所有的空字符,包括空格、换行(\n)
# 第二个参数是分割次数,分割两次可是会变成三份的哦
# 他的分割是从右开始数,split是从左开始
print("aa bb cc dd".rsplit())
# ['aa', 'bb', 'cc', 'dd']
print("aa bb cc dd".rsplit(maxsplit=2))
# ['aa bb', 'cc', 'dd']
# Demo31 rstrip 去除右起字符,默认是空格
print("***aaa***".rstrip('*'))
# ***aaa
# Demo32 split 通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔num次(1次是2个)
l1 = "a b c d 1 234".split()
print(type(l1), l1)
l2 = "a,b,c,d,e,123".split(',', 4)
print(type(l2), l2)
# <class 'list'> ['a', 'b', 'c', 'd', '1', '234']
# <class 'list'> ['a', 'b', 'c', 'd', 'e,123']
# Demo33 splitlines 分行,第二个参数为是否保留换行符
s33_1 = "abcd1234\n1234abcd\ncccccc\n"
print(s33_1.splitlines())
print(s33_1.splitlines(keepends=True))
# ['abcd1234', '1234abcd', 'cccccc']
# ['abcd1234\n', '1234abcd\n', 'cccccc\n']
# Demo34 startswith 起始位置字符,返回True、False
print("abcd222".startswith('a', 0, 3))
# True
print("abcd222".startswith('bbb'))
# False
# Demo35 strip 去除首尾字符,默认为空格
print(" aaa ".strip())
# aaa
print("***aaa***".strip('*'))
# aaa
# Demo36 swapcase 切换大小写
print("AAbbCCdd".swapcase())
# aaBBccDD
# Demo37 title 首字母大写,剩下的全部小写
print("aabbCCDD".title())
# Aabbccdd
# Demo38 translate 这个是和maketrans一起用的 也可以单独使用只不过比较二
# 他接受一个字典,并且key,必须是int,那如果要替换'a'就需要用ascii码,我下面就是用的ascii,97
# 而且python2 和 python3是有明显区别的,要用就和maketrans一起用
print("ababab1212".translate({97: "F"}))
# FbFbFb1212
# Demo39 upper 全部转换大写
print("aabBccdD".upper())
# AABBCCDD
# Demo40 zfill 返回指定长度的字符串,原字符串右对齐,前面填充0
print("aaa".zfill(10))
# 0000000aaa
Python3.6 str内置方法
最新推荐文章于 2021-06-07 14:39:35 发布