python3 字符串基础

1、len()

  计算字符串长度。

a = "i like you"
print(len(a))

  打印输出结果:10

2、capitalize()

  首字母大写。

a = "i like you"
print(a.capitalize())

  打印输出结果:

I like you

3、count()

  统计字符串中某个字符的个数。

a = "i like you"
print(a.count("i"))

  打印输出结果:2

4、center()

  将字符串放中间,两边填充(默认为空格)。

a = "i like you"
b = a.center(50)
print(b)
b = a.center(50,"*")
print(b)

  打印输出结果:

                    i like you                    
********************i like you********************

5、endswith("xx")

  判断字符串是否以"xx"结尾。

a = "i like you"
print(a.endswith("you"))
print(a.endswith("yo"))

  打印输出结果:

True
False

6、expandtabs()

  把字符串中的 tab 符号(' ')转为空格,tab 符号(' ')默认的空格数是 8。

a = "i 	like you"
print(a)
print(a.expandtabs())
print(a.expandtabs(tabsize=16))

  打印输出结果:

i     like you
i       like you
i               like you
st = "this is	string example....wow!!!";


print(st)
print(st.expandtabs(8))
print(st.expandtabs(16))

  打印输出结果:

this is    string example....wow!!!
this is string example....wow!!!
this is         string example....wow!!!
st = "this is	string example....wow!!!";


print("123"+st)
print("123"+st.expandtabs(8))
print("123"+st.expandtabs(16))

  打印输出结果:

123this is    string example....wow!!!
123this is string example....wow!!!
123this is         string example....wow!!!

7、find('xx')

  找到''xx"相对字符串首字母的偏移位置。

a = "i like you"
offset = a.find("like")
print(offset)
print(a[offset:])
print(a[:offset])

  打印输出结果:

2
like you
i 

8、format()

  格式化字符串。

a = "my name is {name} and i am {year} old"
b = a.format(name="jack",year=20)
print(a)
print(b)

  打印输出结果:

my name is {name} and i am {year} old
my name is jack and i am 20 old

9、 format_map()

  格式化字符串。

a = "my name is {name} and i am {year} old"
b = a.format_map({'name':'jack', 'year':25})
print(b)

  打印输出结果:

my name is jack and i am 25 old

10、 isalnum()

  字符串是否是字母与数字。

  如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False。

a = "abc123"
b = "***abc123"
c =" "
print(a.isalnum())
print(b.isalnum())
print(c.isalnum())

  打印输出结果:

True
False
False

11、isalpha()

  判断字符串是否之由字母组成。

a = "hello"
b = "abc123"
c = "***abc123"
print(a.isalpha())
print(b.isalpha())
print(c.isalpha())

  打印输出结果:

True
False
False

12、isdigit()

  是否是数字。

a = "123"
b = "hello"
print(a.isdigit())
print(b.isdigit())

  打印输出结果:

True
False

13、isdecimal()

  检查字符串是否只包含十进制字符。这种方法只存在于unicode对象。

a = "this2009"
b = "2018"
c = "你好"
d = "你好".encode("utf-8")
e = str(123)
print(a.isdecimal())
print(b.isdecimal())
print(c.isdecimal())
print(e.isdecimal())
print(d.isdecimal())

  打印输出结果:

False
True
False
True
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-21-f99a056296e2> in <module>()
      8 print(c.isdecimal())
      9 print(e.isdecimal())
---> 10 print(d.isdecimal())

AttributeError: 'bytes' object has no attribute 'isdecimal'

14、isidentifier()

  判断是不是一个合法的标识符。

  标识符必须以字母(大小写均可)或者"_"开头,接下来可以重复0到多次(字母|数字|"_")。

class API(object):
    def get(self):
        print("get")
    def post(self):
        print("post")

api = API()

attr_list = ["name", "123", "!!!","__set__","_delete","test_123"]
for attr in attr_list:
    if attr.isidentifier():
        setattr(api, attr, True)
print(api.__dict__)

  打印输出结果:

{'name': True, '__set__': True, '_delete': True, 'test_123': True}

15、isnumeric()

  检测字符串是否只由数字组成。

  这种方法是只针对unicode对象。定义一个字符串为Unicode,只需要在字符串前添加 'u' 前缀即可。

a = "hello2019"
b = "123456"
c = "0x12A"
d = "33A"
print(a.isnumeric())
print(b.isnumeric())
print(c.isnumeric())
print(d.isnumeric())

  打印输出结果:

False
True
False
False

16、istitle()

  检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。

a = "i like you"
b = "I Iike You!!"
print(a.istitle())
print(b.istitle())

  打印输出结果:

False
True

17、isupper()

  检测字符串中所有的字母是否都为大写。

a = "HELLO"
b = "Ok"
print(a.isupper())
print(b.isupper())

  打印输出结果:

True
False

18、join()

  将序列中的元素以指定的字符连接生成一个新的字符串。

word_list =["I", 'like', 'you', '!','!']
title1 = " ".join(word_list)
title2 = "_".join(word_list)
print(title1)
print(title2)

  打印输出结果:

I like you ! !
I_like_you_!_!

19、ljust()

  返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。

title = "My name is Jack,I'm 25 years old!"
new_title_1 = title.ljust(40,"*")
new_title_2 = title.ljust(20,"*")
print(title)
print(new_title_1)
print(new_title_2)

  打印输出结果:

My name is Jack,I'm 25 years old!
My name is Jack,I'm 25 years old!*******
My name is Jack,I'm 25 years old!

20、rjust()

  返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串。

title = "My name is Jack,I'm 25 years old!"
new_title_1 = title.rjust(40,"*")
new_title_2 = title.rjust(20,"*")
print(title)
print(new_title_1)
print(new_title_2)

  打印输出结果:

My name is Jack,I'm 25 years old!
*******My name is Jack,I'm 25 years old!
My name is Jack,I'm 25 years old!

21、lower()

  将字符串转换成小写。

a = "HELLO"
b = "Ok"
print(a.lower())
print(b.lower())

  打印输出结果:

hello
ok

22、upper()

  将字符串转换成大写。

a ="Hello"
b = "ok"
print(a.upper())
print(b.upper())

  打印输出结果:

HELLO
OK

23、lstrip()

  用于截掉字符串左边的空格或指定字符。

url = "https   ://www.cnblogs.com/yangxueyou/articles/8372629.html"
res = url.lstrip("https")
ret = res.lstrip()
print(res)
print(ret)

  打印输出结果:

   ://www.cnblogs.com/yangxueyou/articles/8372629.html
://www.cnblogs.com/yangxueyou/articles/8372629.html
print( '
Alex'.lstrip()  )

  打印输出结果:

Alex

24、rstrip()

  用于截掉字符串右边的空格或指定字符。

url = "https://www.cnblogs.com/yangxueyou/articles/8372629.html?a=1&b=2"
print(url.rstrip("b=2"))

  打印输出结果:

https://www.cnblogs.com/yangxueyou/articles/8372629.html?a=1&

  

print( 'Alex
'.rstrip()  )

  打印输出结果:

Alex

25、strip()

  用于移除字符串头尾指定的字符(默认为空格)或字符序列。

  该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。

print( '    Alex
'.strip()  )

  打印输出结果:

Alex

26、maketrans()

  创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。两个字符串的长度必须相同,为一一对应的关系。

intab = "aeiou"
outtab = "12345"
trantab = str.maketrans(intab, outtab)

title = "this is string example....wow!!!"
print(title.translate(trantab))

  打印输出结果:

th3s 3s str3ng 2x1mpl2....w4w!!!

27、replace()

  把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。

a = "I like you,do you like me?"
b = a.replace('like', 'love', 1)
c = a.replace('like', 'love', 2)
print(b)
print(c)

  打印输出结果:

I love you,do you like me?
I love you,do you love me?

28、rfind()

  返回字符串最后一次出现的位置,如果没有匹配项则返回-1。

a = "I like you,do you like me?"
print(a.rfind('me'))

  打印输出结果:23

29、split()

  通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则仅分隔 num 次。

print('1+2+3+4'.split('+'))
print('1+2+3+4+5'.split('+',2))
print('1+2+3+4+5'.split('+',3))

  打印输出结果:

['1', '2', '3', '4']
['1', '2', '3+4+5']
['1', '2', '3', '4+5']

30、splitlines(keepends)

  按照行(' ', ' ', ')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

print('1+2
+3+4'.splitlines())
print('1+2
+3+4'.splitlines(True))
print('1+
2
+3+
4'.splitlines())

  打印输出结果:

['1+2', '+3+4']
['1+2
', '+3+4']
['1+', '2', '+3+', '4']

31、swapcase()

  用于对字符串的大小写字母进行转换。

a = "I like you!"
b = a.swapcase()
print(a)
print(b)

  打印输出结果:

I like you!
i LIKE YOU!

32、title()

  返回"标题化"的字符串,所有单词的首个字母转化为大写,其余字母均为小写。

a = "I like you!"
b = a.title()
print(b)

  打印输出结果:

I Like You!

33、 zfill()

  指定长度的字符串,原字符串右对齐,前面填充0。

money = "2050"
money = money.zfill(8)
print(money)

  打印输出结果:

00002050
原文地址:https://www.cnblogs.com/bad-robot/p/9679023.html