什么是格式化

定义:一个固定的字符串中有部分元素是根据变量的值而改变的字符串

今天是xx,星期xx,大家好

date = '2022.1211'

day = '--'

 

根据类型定义的格式化

'my name is %s, my age is %s' % ('dewei', 33)

 

#coding:utf-8

info = 'my name id %s, my age is %s' % ('xiaomu', 10)
print(info)

info = 'my name id %s, my age is %s'
name_01 = 'hello'
age_01 = 10
print(info % (name_01, age_01))

message = '你好,今天是%s, 你的手机号码: %s 已经欠费了,请尽快充值'

#两个元素及以上需要用元祖()包裹
print(message % ('星期一', 1123333333))

books = ['python', 'css', 'html']
info_2 = 'my name id %s, my age is %s, my book is %s'
print(info_2 % (name_01, age_01, books))

dict_01 = {'a':'a', 'b': 'b'}
print('dict is %s' % dict_01)

字符串格式化函数 format

info_3 = 'my name is {}, my age is {}'
print(info_3.format(name_01,age_01))

info_4 = 'my name is {0}, my age is {1}, my book is {2}'
print(info_3.format(name_01,age_01, books))

python3.6加入的新格式化方案 f-strings

#需要提前定义好变量名
info_5 = f'my name is {name_01}, my age is {name+02}'
print(info_5)

 

字符串格式化的常用格式符

格式化符号 --- 用于对应各种数据类型的格式化符号

%s     格式化字符串,通用类型

%d     格式化整型

%f      格式化浮点型

%u     格式化无符号整型(正整型)

%c     格式化字符 (只能有一个字符)

#coding:utf-8

print('%c' %  1020)  #最大是7位数
print('%c' % 'a')

print('%u' % -1)
print('%f' % 1.2) #1.200000
print('%f' % 3.14) #3.140000
print('%f' % 12) #12.000000

print('%d' % 10)
print('%d' % -10)
print('%d' % 1.2) #1

#format支持 %d %f
print('{:d}'.format(1))
print('{:f}'.format(1.2))

不常用的格式符

%o   格式化无符号八进制数

%x   格式化无符号16进制数

%e   科学计数法格式化浮点数

number = int('123ab', 16)
print(number) #74667
print('%x' % number)

print('%e' % 1.2) #1.200000e+00