多变量输出
为了避免重复变量的输出,我们可以用python中的str模板。例如,我们想得到一个这样的模板,每当我们输入一个名字例如(Jack)的时候,它就输出”Hello,Jack!”。为了得到以上模板,我们写了如下的代码。
# -*- coding: utf-8 -*-
name=raw_input("what's your name?") #输入你的名字
greeting="Hello,%s!"%name #得到你的打招呼信息
print greeting #输出打招呼信息
得到结果:
以上是一个变量的时候进行的输出,其实我们还可以输出大量不同种变量,以下是代码示例。
# -*- coding: utf-8 -*-
name=raw_input("what's your name?") #输入你的名字
age=input("How old are you?") #输入你的年龄
weight=input("What is your weight?") #输入你的重量,以kg为单位
info="I'm %s,my age is %d,my weight is %.2f."%(name,age,weight)
print info
得到结果:
以上是对各种输出类型的一个输出。可以看到,我输入的weight是180.3333,然而输出的是180.33。这里是因为我在info的获取最后一个%f的时候加了一个2,表示取到小数点后的第二位数字,这个叫做转换说明符。转换说明符的可以包括字段宽幅和精度。字段宽度是转换后的值所保留的最小字符个数。精度则是结果中包含的小数位数,或者是转换后的值所能包含的最大字符个数。
这两个参数都是整数(首先是字段宽度,然后是精度),通过点号(.)分割。虽然两个都是可选参数,但是如果只给精度,就必须包含点号:
>>> ‘%10f’ % pi #字段宽10
’ 3.141593’
>>> ‘%10.2f’ % pi #字段为10,精度为2
’ 3.14’
>>>’%.2f’ %pi #精度为2
‘3.14’
字符串格式化转换类型
转换类型 | 含义 |
---|---|
d,i | 带符号的十进制整数 |
o | 不带符号的八进制 |
u | 不带符号的十进制 |
x | 不带符号的十六进制(小写) |
X | 不带符号的十六进制(大写) |
e | 科学记数法表示的浮点数(小写) |
E | 科学记数法表示的浮点数(大写) |
f,F | 十进制浮点数 |
g | 如果指数大于-4或者小于精度值则和e相同,其他情况与f相同 |
g | 如果指数大于-4或者小于精度值则和E相同,其他情况与F相同 |
C | 单字符(接受整数或者单字符的字符串) |
r | 字符串(使用repr转换任意python对象) |
s | 字符串(使用str转换任意python对象) |