Python字符串的常用内置方法以及格式化输出

前言:

熟练掌握字符串的内置方法,可以更有效的对字符串进行控制使用
格式化输出则是对字符串的值进行调整以及引入新的值进入

不熟悉python的朋友可以不妨先阅读:https://blog.csdn.net/m0_46958731/article/details/109751902


格式化输出

在已存在的字符串的任意位置增加新的值,或是引入变量进来

name = 'tom'
age = 18

# 此时想在这个字符串对应的引入上序两个变量
test = "My name is %s My age is  %s" % (name ,age)
# 这里用于%s 将所需变量,引入到test变量值中
print(test)
'My name is tom My age is 18'
'''

%s 作用于格式化输出字符串,可以看到age是int类型
但是通过%s会默认转换成字符串传入进去
%d 主要作用于数字类型传入,其它类型传入会报错(推荐字符使用%s)

插入知识点:%f	用于处理小数 可以作用于保留后几位
test = "this is number %0.2f " % (10/3)	 有连续字符用于括号或多个传入
print(test)

'''

字符串格式化之 format


通过fomrat方法将值 或者变量引入到字符串中

'''
定义好括号位置,使用format方法根据你的需求按位置存入值和前面括号进行对应
可以传入的是数字,format在传入后根据类型进行转换成字符串
'''
res = "My name is {} My age is {}".format('tom',18)
'My name is tom My age is 18'

# 可以根据定义名来引入值,不需要按顺序
res = "My name is {name} My age is {age}".format(age=18,name='tom')
'My name is tom My age is 18'

# format使用索引取值,format方法内 第一个代表索引0 第二个代表索引1
res = "My name is {1}{0} My age is {0}{1}".format(18,'tom')
'My name is tom18 My age is 18tom'

# 注意:
res = "My name is {}{0} My age is {}{1}".format(18,'tom')
'My name is tom18 My age is 18tom'
# 会产生错误,因为空括号会把format里面的值直接拿走,所以索引取值会失败报错


# format 让字符进行占位 如果不够的话指定字符填充
# 如果字符不够10位 用*号在字符左边填充 至筹齐10位
res = "My name is {0} My age is {1:*>10}".format('tom',18)
'My name is tom My age is ********18'

# 如果字符不够10位 用*号在字符右边填充 至筹齐10位
res = "My name is {0} My age is {1:*<10}".format('tom',18)   
'My name is tom My age is 18********'

# 如果字符不够10位 用*进行围绕字符左右填充 至筹齐10位
res = "My name is {0} My age is {1:*^10}".format('tom',18)   
'My name is tom My age is ****18****'

# format 进制转换
# 将数字(注意:这里一定要是数字) 转换成2进制
res = "My name is {0} My age is {1:b}".format('tom',18) 
print(res)

# 将数字(注意:这里一定要是数字) 转换成8进制
res = "My name is {0} My age is {1:o}".format('tom',18) # 将18转换成8进制
print(res)

# 将数字(注意:这里一定要是数字) 转换成16进制
res = "My name is {0} My age is {1:x}".format('tom',18) # 将18转换成16进制
print(res)

# list传值

list = ['tom',123]
# *list表示 将列表里的元素拿出来按顺序放进去
res = "My name is {}  My age is {}".format(*list)
'My name is tom My age is 123'

# dict传值
dic = {"name":'tom','age':18}
# *dic 只是取出来字典的key
res = "My name is {} My age is {}".format(*dic) 
'My name is name My age is age' # 注意:拿到的只是key

dic = {"name":'tom','age':18}
# ** 将字典key和value取出  {}内放入字典的key即可取出值
res = "My name is {name} My age is {age}".format(**dic) 
# 相当于format定义了 name = 'tom',age = 18 将字典以这种形式放入才是正确
'My name is tom My age is 18'


格式化字符之 f-string

称为格式化字符串常量,是Python3.6新引入的一种格式化方法,f-string方法在使用起来不逊于str.format()方法,语法更加简洁
name = 'tom'
age = 18

res = f"My name is {name} My age is {age}"    # 通过字符串前定义f 让字符串内可以接收变量
'My name is tom My age is 18'

# 自定义传值,注意括号内的引号不能和外部引号冲突,会报错
res = f"My name is {'jack'} My age is {25}"
'My name is tom My age is 25'


字符串内置方法


通过python内部定义好的方法对字符串的值进行操作

# 可以通过变量来取到引用方法后的值

print('123'.isdigit())	# 检测内容是否全部为数字 字符
True
print('abc123'.isalnum())   # 检测 字符串由字母或数字组成
True
print('abc'.isalpha())   # 检测字符串是否为纯字母组成
True
# 可以识别中文数字、罗马、unicode 注意:不能有其它字符
print('ksdfl十'.isnumeric())  
False

通过内容查找字符串的索引位置
# # find内容查找  只会找到指定字符的第一个字符索引位置
msg = 'ABCllHello'
print(msg.find('Hello'))
5  # H的索引位置   

msg = "Hello World"
print(msg.find('W',2,7))	# 通过指定范围来查找,注意:顾头不顾尾只能2到6
6

print(msg.find('wrold'))
-1	# -1表示未找到

print(msg.index('HA'))
# 找到指定字符的索引位置 未找到会报错    推荐使用find

字符串的大小写转换
# 对字符串的大小写转换
print("Hello World".lower()) # 将字符全部转为小写
# hello world
print("HEllo World".upper()) # 将字符全部转为大写
# HELLO WORLD
print("hello world".capitalize())   # 将整个字符串的首字母转为大写
# Hello world
print("hello world".title())   # 字符有间隔后每个首字母大写
# Hello World
print("Hello World".swapcase())  # 如果有小写就转换成大写 有大写就转换成小写
# hELLO wORLD

判断字符串内容
print('abc'.islower())      # 是否全小写
True

print('ABC'.isupper())      # 是否全大写
True

print('   '.isspace())      # 是否全空格
True

print('As Ds'.istitle())    # 是否全部首字母大写
True

通过定义字符来填充字符串达到指定数量
# 如果字符串未达到30个字符 使用- 在字符左右两边填充
print('Hello World'.center(30,'-')) 
---------Hello World----------

# 如果字符串未达到30个字符 使用*在字符后面填充
print('Hello World'.ljust(30,'*'))  
Hello World*******************

# 如果字符串未达到30个字符 使用*在字符前面填充
print('Hello World'.rjust(30,"*"))  
*******************Hello World

# 如果字符串未达到30个字符 使用0 在字符前面填充
print('Hello World'.zfill(30))   
0000000000000000000Hello World

动手实践一下!记忆更深层

技术小白记录学习过程,有错误或不解的地方请指出,如果这篇文章对你有所帮助请点赞收藏+关注 谢谢支持!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值