(3)格式化输出(占位符)%
程序中经常会有这样场景:要求用户输入信息,然后打印成固定的格式
比如要求用户输入用户名和年龄,然后打印如下格式:My name is xxx,my age is xxx.
很明显,用逗号进行字符串拼接,只能把用户输入的名字和年龄放到末尾,无法放到指定的xxx位置,而且数字也必须经过str(数字)的转换才能与字符串进行拼接。这就用到了占位符,如:%s、%d
%s代表字符串占位符(可以接收字符串也能接收数字),%d属于数字占位符
例:name = 'Aliex'
>>>age = '22'
>>>name + age
'Aliex22'
>>>name * 10
AliexAliexAliexAliexAliexAliexAliexAliexAliexAliex
简单说明
name = input('Name: ')
age = input('Age: ')
print(“name is : %s,age is : %s”%(name,age)) #所有占位符最后都要格式化定义占位符的映射
PS:最后输出的年龄如果是%d则会直接报错,因为age输入的默认是字符串
占位符的映射
name = input('Name: ')
age = input('Age: ')
job = input('Job: ')
hobbie = input('Hobbie: ')
info = ''' ------------------info of %s------------------ #这行的%s就是代表后面括号里的第一个name(也可以用其他的变量赋值,但是这个变量一定是已经定义的)
Name : %s #这个%s代表
name Age : %s #这个%s代表 age
Job : %s #这个%s代表 job
Hobbie : %s #这个%s代表 hobbie
-----------------end------------------
'''%(name,name,age,job,hobbie) #这里的%就是把前面的字符串和括号里的变量关联起来
print(info)
name = input('Name: ')
age = int(input('Age: ')) #在input前面加一个int转换数据类型即可
job = input('Job: ')
hobbie = input('Hobbie: ')
print(type(age))
info = '''
------------------info of %s------------------
Name : %s #代表 name
Age : %d #代表 age ,这里把原来的%s改成%d并不会报错,因为在开头定义了将age的值转换成整型
Job : %s #代表 job
Hobbie : %s #代表 hobbie
-----------------end------------------
'''%(name,name,age,job,hobbie)
print(info)
PS:在age的时候输入数字,但是会报错,告诉你需要一个数字,而不是一个字符串str。这时候我们使用type函数查看age的数据类型,会提示是str 所以input接收的所有输入默认都是字符串格式。解决办法就是将age后面的值加int将str变成整数的类型
PS:反则我们也能把字符串转换成数字类型,str(yourStr)