python学习06

这篇博客主要介绍了Python中String字符串的各种操作,包括填充、查找、提取、分割与合并、替换、判断、前缀后缀检查、编码解码、ASCII码转换及字符串映射等核心功能,是Python初学者掌握字符串操作的重要参考资料。

一.String字符串

1.常用功能

1.1填充

代码演示:
#填充
#center(width[,fillchar]):返回一个指定宽度的居中字符串,width是填充之后整个字符串的长度
#fillchar是需要被填充的字符串,默认为空格
#char——》character字符
str1="hello"
print(str1.center(20))
print(str1.center(20,"*"))
#print(str1.center(20,"abc"))	#TypeError: The fill character must be exactly one character long
#注意:使用了center功能之后,生成了一个新的字符串,原字符串出现在中间,两边使用指定的字符填充
#注意:fillchar必须只有一个字符

#1.just(width[,fillchar])	返回一个指定宽度的字符串,将原字符串居左对齐,width是填充之后整个字符串的长度
#l:left
print(str1.ljust(20,"%"))

#rjust(width[,fillchar])	返回一个指定宽度的字符串,将原字符串居右对齐,width是填充之后整个字符串的长度
#r:right
print(str1.rjust(20,"%"))

#zfill(width)返回的是一个指定宽度的字符串,将原字符串居右对齐,width使用0填充
print(str1.zfill(20))

1.2查找

#查找【掌握】
str2="abcdefgh123hello"
#find(str[,start,end]):从左到右依次检测,str是否在原字符串中,如果存在则返回位置
#特点:如果查找到,返回的是子字符串的第一个字符在原字符串中的下标,如果查找不到则返回-1
print(str2.find("hello"))
print(str2.find("e"))
print(str2.find("yyy"))
print(str2.find("h",3,10))
#注意:如果子字符串在原字符串中出现多次,则只返回第一次查找到的下标

#rfind():类似于find,只是从右往左检测
print(str2.rfind("hello"))
print(str2.rfind("e"))

#index():和find的用法基本相同,唯一的区别:find如果查找不到返回-1,但是index则直接报错
print(str2.index("hello"))
#print(str2.index("yyy"))	#ValueError: substring not found
#rindex()

#max():返回原字符串中的最大字母
#使用格式:max或者min(str)
print(max(str2))

#min():返回原字符串中的最小字母
print(min(str2))

1.3提取

代码演示:
#提取:
#strip(str):使用str作为条件提取字符串,需要注意:只能去除两端指定的字符【trim】
str1="*****today is ******** a good day*****"
print(str.strip("*"))

#lstrip():去除左边的指定字符串
print(str1.lstrip("*"))

#rstrip():去除右边的指定字符串
print(str1.rstrip("*"))

1.4分割和合并

代码演示:
#分割和合并【掌握】:正则表达式

#split(str[,num]):使用指定字符串分割原字符串,返回一个列表【字符串转换成列表】
str1="today in a good day"
print(str1.split(" "))	#['today', 'in', 'a', 'good', 'day']
str2="hello"
#print(str1.split(""))	#ValueError: empty separator
#注意:使用split功能的时候,其中的分割字符串不能为空

#num表示分割符出现的次数
print(str1.split(" ",2))	#['today', 'in', 'a good day']

#sliptlines(flag)	按照换行符【\n,\r,\r\n】分割,结果为列表
#flag可写可不写,False:忽略换行符,True:表示保留换行符
s1="""today
is
a
good
day
"""
print(s1.splitlines(True))	#['today\n', 'is\n', 'a\n', 'good\n', 'day\n']
print(s1.splitlines(False))	#['today', 'is', 'a', 'good', 'day']

#join(list):将原字符串作为连接符号,将列表中的元素连接起来,结果为一个字符串【列表转换成字符串】
str3="-"
list1=["zhangsan","lisi","jack"]
str4=str3.join(list1)
print(str4)

1.5替换

#替换【掌握】
#replace(old,new[,max]):将原字符串中的old字符串替换为new字符串,如果指定了max,则替换的次数不超过max次
str1="today is a good day"
#需求:将其中的good替换为bad
#注意:替换之后仍然是生成了一个新的字符串
print(str1.replace("good","bad"))
print(str1)

str2="today is a good good good day"
#注意:max:从左到右检测,只替换个数的字符串
print(str2.replace("good","bad",2))

#replaceAll()

1.6判断

代码演示:
#判断
#注意:全部返回的结果为布尔值
#isalpha():如果字符串至少有一个字符,并且所有的字符都是字母的话,则返回True
print("".isalnum())
print("abc".isalnum())
print("abc123".isalnum())

print("~~~~~~~")

#isalnum():如果字符串中至少有一个字符,并且所有的字符是数字或者字母的话,则返回True
print("".isalnum())
print("abc".isalnum())
print("abc123".isalnum())

print("~~~~~~~")

#isupper():如果字符串中至少包含一个区分大小写的字符,并且所有的字符都是大写,则返回True
print("abc".isupper())
print("123".isupper())
print("aBc".isupper())
print("ABC".isupper())	#True

#islower()

print("~~~~~~~")

#istitle():如果字符串的单词是标题化的,则返回True
print("this is a test".istitle())
print("This is a test".istitle())
print("This Is A Test".istitle())

print("~~~~~~~")

#isdigital()【判断字符串中是否只包含数字,是则返回True】
print("abc123".isdigit())
print("abc".isdigit())
print("123".isdigit())
#结合int("123")	int("123abc")	使用

print("~~~~~~~")

#isnumeric():判断字符串中是否只包含数字字符,是则返回True
print("abc123".isnumeric())
print("abc".isnumeric())
print("123".isnumeric())

print("~~~~~~~")

#isdecimal():判断字符串中是否只包含十进制,是则返回True
print("2434".isdecimal())
print("454e4".isdecimal())

print("~~~~~~~")

#isspace():判断字符串中是否只包含空格,是则返回True
print("abc 43".isspace())
print("  ".isspace())

1.7前缀和后缀

#前缀和后缀
#结果为布尔值

#startswitch(str[,beg=0,end=len(string)])
#判断原字符串是否是以指定字符串开头的,如果beg和end指定值,则表示在指定的范围内判断
str1="helloghjshgi"
print(str1.startswith("hello"))

#endswith(str[,beg=0,end=len(string)])
print(str1.endswith())

1.8编码器

代码演示:
#字符串的编码和解码
#https://www.baidu.com/s?wd=%E5%8D%83%E9%94%8B&rsv_spt=1&rsv_iqid=0xdae3d65100023b6c&issp=1&f=8
#encode():将字符串转换为字节类型的过程
str2 = "hello 中文"
print(str2.encode())
print(str2.encode("utf-8"))
print(str2.encode("gbk"))
​
byte11 = str2.encode("gbk")
print(type(byte11))
​
#decode() :将字节类型转换为字符串的过程
print(byte11.decode("gbk"))

1.9ASCII码转换

代码演示:
#ASCII码转换
#ord():获取字符的整数表示
print(ord("A"))
print(ord("a"))

#chr():把编码转换成对应的字符
print(chr(65))
print(chr(97))

#需求:将hello转换成大写输出
s1="hello"
s2=""
for i in range(len(s1)):
	num=ord(s1[i])
	num-=32
	ch=chr(num)
	print(ch)
	s2+=ch
	
print(s2)

1.10字符串映射

#字符串的映射
#maketrans(str1,str2):创建字符映射的转换表
#str1表示需要被转换的字符串,str2需要转换的目标
t=str.maketrans("ac","68")
print(t)	#{97: 54, 99: 56}

1.11需要终点站掌握的功能

len()
count()
center()
starswith()
fing()和index()
strip()
replace()
split()
join()
isdigit()
ord()和chr()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值