Python基础之格式化输出

有一个需求,问用户的姓名,年龄,工作,爱好,然后打印成以下格式:

-----------info of yangwei---------------    
Name    : yangwei                            
Age     : 22                                 
Job     : IT                                 
Hobby   : read                               
---------------end-------------------

这种形式用字符拼接的方式还很难实现这种格式的输出,因此需要格式化输出。

只需要把打印的格式先准备好,由于里面的一些信息是需要用户输入的,没办法预先知道,因此可以先放置个占位符,再把字符串里的占位符与外部的变量做个映射关系。

name = input("Name:")
age = input("Age:")
job = input("Job:")
hobby = input("hobby:")

info = """
-----------info of %s---------------    #这里的每个%s就是一个占位符
Name    : %s                            #代表name
Age     : %s                            #代表age
Job     : %s                            #代表job
Hobby   : %s                            #代表hobby
---------------end-------------------
""" % (name, name, age, job, hobby)
# 这行的%,就是把前面的字符串与括号后面的变量关联起来

print(info)

%就是代表字符串占位符,除此之外,还有%d,是数字占位符,如果把上面的age后面的换成%d,就代表必须只能输入数字。

age     : %d

但是当实际运行的时候却出错了:

TypeError: %d format: a number is required, not str

这是因为input的所有输入默认是字符串格式的。

猜你喜欢

转载自www.cnblogs.com/yang-wei/p/9544782.html