关于python的字符串格式化,作者一直不太理解,经过几天的反复思考,作者个人感觉理解的差不多了,才斗胆浅聊一下关于字符串的格式化。
作者个人认为格式化字符串是为了将不同格式的内容输出,格式化字符串有三种类型分别为使用占位符,使用f.string以及format作者将会以format对format进行较深的讲解。
占位符对字符串进行格式化,占位符和c语言中的可以说是一样的,分别为%d,%s,%f分别代表整数类型,字符串类型,浮点数类型与c语言不同的是其在使用的后面需要加上%加定义的变量;f.string对字符进行格式化时,使用f单引号或者双引号加{变量名}即可;format对字符串进行格式化时,使用单引号或者双引号加{数字}引号外面为format(变量名)注意引号中的数字要与format的变量名一一对应且数字要从0开始
#使用占位符进行格式化即将不同格式的内容进行连接
name='wxb'
age=20
score=100
print('name:%s,age:%d,score:%.1f' %(name,age,score))
#使用f.string
print(f'name:{name},age:{age},score:{score}')
#使用字符串format
print('name:{0},age:{1},score:{2}'.format(name,age,score))
format的进阶使用
format其他使用方法,控制字符串输出格式;数字的千位分割符;浮点数的小数部分的精度;字符串类型显示的最大长度;整数类型的各种进制的转换;使用方法为{数字加操作}.format(变量名)具体操作方法将以代码的类型呈现出来
#控制输出字符串的格式
s='helloworld'
print("{0:*<20}".format(s))#<为左对齐
print("{0:*>20}".format(s))#>为右对齐
print("{0:*^20}".format(s))#^为居中
#也可以使用s.center函数进行操作
print(s.center(20,'*'))
#千位分隔符
print('{0:,}'.format(987654321))
print('{0:,}'.format(31415.926))
#浮点数小数部分的精度
print('{0:.2f}'.format(3.1415926))
#字符串类型显示最大长度
print('{0:.5}'.format(s))
#整数类型
a=425
print('二进制:{0:b},十进制:{0:d},八进制:{0:o},十六进制:{0:x}'.format(a))
#浮点数类型
b=3.1415926
print('{0:.2f},{0:.2e},{0:.2E}'.format(b))
数据的验证
在python中会使用到对字符串的数据验证,例如字符串是否为阿拉伯数字组成,字符串是否为数字,字符串是否为字母,字符串是否为大小写,字符串是否为空字符串
print('123'.isdigit())#只识别数字十进制阿拉伯数字
print('一二三'.isdigit())
print('0b1010'.isdigit())
print('-'*50)
#所有字符都是数字
print('123'.isnumeric())
print('一二三'.isnumeric())
print('ⅠⅡⅢ'.isnumeric())
print('壹贰叁'.isnumeric())
print('-'*50)
#所有字符是字母(包括中文字符)
print('hello你好'.isalpha())
print('hello你好123'.isalpha())
print('-'*50)
#使用字符都是数字或字母
print('hello你好'.isalnum())
print('hello你好123'.isalnum())
print('-'*50)
#判断字符大小写
print('hello'.isupper())
print('HELLO'.isupper())
print('hello'.islower())
print('HELLO'.islower())
print('-'*50)
#所有字符都是首字母大写
print('Helloworld'.istitle())
print('HelloWorld'.istitle())
print('Hello World'.istitle())
print('-'*50)
#判断是否为空字符
print(' '.isspace())
print('\t'.isspace())
print('\n'.isspace())