(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)

posted @ 2018-10-23 15:24  clyde_S  阅读(1657)  评论(0编辑  收藏  举报