字符串

一、String字符串

1.分割和合并

1.1 str1.split(str2, num)

功能:以str2为分割截取字符串,num默认为str1.count()

若给定num 后,则截取num个字符串,剩余的不再进行截取。

str1 = "how are you , i am fine thank you"
#使用空格进行分割
list1 = str1.split(" ")
print(list1)
#结果
['how', 'are', 'you', ',', 'i', 'am', 'fine', 'thank', 'you']

1.2 str1.splitlines([keepends])

功能:字符串会按照行('\r','\r\n','\n')进行分割,返回一个包含各行作为元素的列表,如果参数keepends的值为False,不包含换行符,如果为True,则保留换行符。

str2 = '''how are
you ?
i am
fine
!
'''
​
list2 = str2.splitlines()
print(list2)
#结果
['how are', 'you ?', 'i am', 'fine', '!']
str2 = '''how are
you ?
i am
fine
!
'''
​
list2 = str2.splitlines(keepends=True)
print(list2)
#结果
['how are\n', 'you ?\n', 'i am\n', 'fine\n', '!\n']

1.3 str1.join(seq)

功能:以指定字符串作为分隔符,将seq中的所有元素合并成为一个新的字符串

list2 = ['you', 'are', 'very', 'great', '!']
str3 = ' '.join(list2)
print(str3)
#结果
you are very great !
str1 = "how are you , i am fine thank you"
str3 = "*".join(str1)
print(str3)
#结果
h*o*w* *a*r*e* *y*o*u* *,* *i* *a*m* *f*i*n*e* *t*h*a*n*k* *y*o*u

注意:如果连接的是字符串,则它会把字符串中的每个字符使用指定字符连接。

2.获取最大最小字符

2.1 max(str)

功能: 返回字符串str中最大的字母

str1 = "how are you , i am fine thank you"
print(max(str1))
#结果
y

2.2 min(str)

功能:返回字符串str中最小字母

str1 = "how are you , i am fine thank you"
print(min(str1))
#结果
‘ ’

注意:比较的是ASCII码值

3.字符串的替换

3.1 replace(old , new [, count])

功能:将字符串中的old替换成new,若不指定count,则默认全部替换,若指定count,则替换前count个

str1 = "how are you , i am fine thank you"
str2 = str1.replace("you" ,'me')
print(str2)
#结果
how are me , i am fine thank me

3.2 字符串映射替换

参数一:要转换的字符 参数二:目标字符

dic = str.maketrans(oldstr, newstr)

str2.translate(dic)

str5 = "aaa bbb  ccc  deee"
dic = str5.maketrans("ac", "21")
# a--2   c--1
str7 = "how  are you  ,u ewe "
print(str7.translate(dic))
#结果
how  2re you  ,u ewe 
#注意:很少用

4.判断字符串的开头结尾

str.startswith(str1, start=0, end=len(str))

功能:在给定的范围内判断字符串是否以给定的字符串开头,如果没有指定范围,默认整个字符串

str1 = "aaa bbb  ccc  deee"
print(str1.startswith("aa"))
#结果
True
​
​
str1 = "aaa bbb  ccc  deee"
print(str1.startswith("aa", 3, 9))
#结果
False

str.endswith(str, start=0, end=len(str))

功能:在给定的范围内判断字符串是否以指定的字符串结尾,若没有指定范围,默认为整个字符串

str1 = "aaa bbb  ccc  deee"
print(str1.endswith("e"))
#结果
True
​
str1 = "aaa bbb  ccc  deee"
print(str1.endswith("e", 3 ,9))
#结果
False

5.编码与解码

str.encode(encoding="utf-8", errors="scrict")

功能:字符串的编码,若不指定encoding则默认选择utf-8

str1 = "你好吗?"
data = str1.encode()
print(data)
print(type(data))
#结果
b'\xe4\xbd\xa0\xe5\xa5\xbd\xe5\x90\x97\xef\xbc\x9f'
<class 'bytes'>

str.decode(encoding="utf-8")

"hello".encode("utf-8").decode()

功能:对字符进行解码,若不指定编码格式,则默认选择utf-8

str1 = "你好吗?"
data = str1.encode()
print(data)
print(type(data))
​
data2 = data.decode()
print(data2)
print(type(data2))
​
#结果
b'\xe4\xbd\xa0\xe5\xa5\xbd\xe5\x90\x97\xef\xbc\x9f'
<class 'bytes'>
你好吗?
<class 'str'>

注意:解码时的编码格式要与编码时的保持一致

拓展:errors = ignore 的时候,忽略错误

6.判断是否为字母或数字

str.isalpha()

功能:判断字符串至少有一个字符,并且所有的字符都是字母,若为真则返回True,否则返回False

注意:中文没有考虑在内

str8 = "hello ni hao "
print(str8.isalpha())
#结果
False
str9 = "hellonahao"
print(str9.isalpha())
#结果
True

str.isalnum()

功能:判断一个字符串至少有一个字符,并且所有的字符都是字母或数字则返回True否则返回False

注意:中文不考虑在内

str10 = "sc22xdcd"
print(str9.isalnum())
print(str10.isalpha())
#结果
True
False

7.判断大小写

str.isupper()

功能:若字符串中包含至少一个字母的字符,并且这些字母都是大写,则返回True,否则返回False

str10 = "AA2221  111"
print(str10.isupper())
#结果
True
​
str10 = "AAaaa"
print(str10.isupper())
#结果
False

str.islower()

功能:若字符串中包含至少一个字母的字符,并且这所有的字母都是小写,则返回True,否则返回False

str10 = "aa2221  111"
print(str10.islower())
#结果
True

8.判断是否包含特殊字符

8.1 str.istitle()

功能:如果一个字符串是标题化的则返回True,否则返回False

【标题化】每个首字母大写

str1 = "Hello World"
print(str1.istitle())

8.2 str.isdigit()

isdigit()
True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字
False: 汉字数字
Error: 无
print("123".isdigit())
print("123a".isdigit())
#结果
True
False

同上

str.isnumeric()

功能:若字符串中只包含数字字符,则返回True,否则返回False

isnumeric()
True: Unicode数字,全角数字(双字节),罗马数字,汉字数字
False: 无
Error: byte数字(单字节)

8.3 str.isdecimal()

功能:检查字符串是否只包含十进制字符,如果是返回True,否则返回False

isdecimal()
True: Unicode数字,,全角数字(双字节)
False: 罗马数字,汉字数字
Error: byte数字(单字节)
print("123".isdecimal())
print("123z".isdecimal())
#结果
True
False
num = "1"  #unicode
num.isdigit()   # True
num.isdecimal() # True
num.isnumeric() # True
​
num = "1" # 全角
num.isdigit()   # True
num.isdecimal() # True
num.isnumeric() # True
​
num = b"1" # byte
num.isdigit()   # True
num.isdecimal() # AttributeError 'bytes' object has no attribute 'isdecimal'
num.isnumeric() # AttributeError 'bytes' object has no attribute 'isnumeric'
​
num = "IV" # 罗马数字
num.isdigit()   # True
num.isdecimal() # False
num.isnumeric() # True
​
num = "四" # 汉字
num.isdigit()   # False
num.isdecimal() # False
num.isnumeric() # True

 

8.4 str.isspace()

功能:如果字符串只包含空格,则返回True,否则返回False

print(" ".isspace())
print("\t".isspace())
print("\n".isspace())
print("\r".isspace())
print("  qq".isspace())
​
#结果
True
True
True
True
False

9.ASCII码转换

9.1 ord(str)

功能:获取字符串的整数表示 ASCII码值

print(ord("A"))
print(ord("你"))
#结果
65
20320

9.2 chr(str)

把编码转成对应的字符

print(chr(68))
print(chr(20190))
#结果
D
仞
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值