python字符串的格式化及输出

535 阅读2分钟

格式: '字符串,占位符' % 变量

在上述格式中,格式化完成后,会将占位符位置填充上对应的变量

不同数据类型的变量,要使用不同的占位符进行占位

字符串数据使用 %s

浮点型数据使用 %f

整型数据使用 %d

name = 'xiaoming' age = 18 height = 1.85 weight = 69.5 marriage = False

一个占位符的格式化输出

print('学员的姓名是 %s' % name) print('学员的年龄是 %d' % age) print('学员的身高是 %f' % height) print('学员的体重是 %f' % weight) print('学生的婚姻状况是 %s' % marriage)

有多个动态变量的时候,我们就需要使用多个占位符进行占位

TypeError: not enough arguments for format string

如果前边有多个占位符,那后边的多个变量要使用括号进行包裹

print('学员的姓名是%s, 学员的年龄是%d岁, 学员的身高是%f米, 学员的体重是%fkg, 学员的婚姻状况是%s' % (name, age, height, weight, marriage))

括号内的变量数量不能少于占位符数量

print('学员的姓名是%s, 学员的年龄是%d岁, 学员的身高是%f米, 学员的体重是%fkg, 学员的婚姻状况是%s' % (name, age, height, weight))

not all arguments converted during string formatting

括号内的变量数量不能多于占位符的数量

print('学员的姓名是%s, 学员的年龄是%d岁, 学员的身高是%f米, 学员的体重是%fkg, 学员的婚姻状况是%s' % (name, age, height, weight,marriage,name))

结论:占位符的数量,与%后的变量数量必须保持一致,如果是一个占位符,则可以使用一个变量,如果是多个占位符,那么多个变量必须使用括号包裹起来

能否控制变量输出的结果的样式:可以

name = 'xiaoming' age = 18 height = 1.85 weight = 69.5 id = 12

需求:1.身高保留两位小数,体重保留三位小数

需求:2.学员的id共占用6位,不足位用0填充

使用ctrl + d 可以整行复制

print('学员的姓名是%s, 学员的年龄是%d岁, 学员的身高是%f米, 学员的体重是%fkg, 学员的编号是%d' % (name, age, height, weight, id))

浮点型保留n位小数: %.nf

整型占用n位数据,不足位用0补齐 %0nd

print('学员的姓名是%s, 学员的年龄是%d岁, 学员的身高是%.2f米, 学员的体重是%.3fkg, 学员的编号是%06d' % (name, age, height, weight, id))