格式化输出

 需求:

          我们现在要格式化展示一个人的信息,格式如下:

----------------- info of jackie ----------------
Name :  jackie   
Age  :  26     
Job  :  IT
Salary :  2000
----------------- end -----------------------

我们知道三个单引号可以多行输出,使用了三个单引号之后,就不能在信息中直接使用变量,变量的值也无法直接传进去

这里需要用到占位符 ——  %s  百分号s  代表了string 类型的占位符

代码如下:

#!/usr/bin/env python

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

msg='''
----------------- info of %s ----------------
Name :  %s
Age  :  %s
Job  :  %s
Salary :  %s
----------------- end -----------------------
''' %(name,name,age,job,salary) #注意这里的两个name,是因为程序只会顺位填入占位符,不会自动分析的
print(msg)

结果如下:

Name: jackie
Age: 26
Job: IT
Salary: 2000

----------------- info of jackie ----------------
Name :  jackie
Age  :  26
Job  :  IT
Salary :  2000
----------------- end -----------------------

现在我们要考虑一下,如果用户输入的时候,不小心把age或者salary输入了非全数字,如4000d,该如何提示:

#!/usr/bin/env python
name=input("Name: ")
age=input("Age: ")
job=input("Job: ")
salary=input("Salary: ")

if salary.isdigit(): #判断输入的是否为全数字
    salary = int(salary) #变量全部为字符串,所以需要转为int 类型
else:
    #print("You must be input digit")
    exit("You must be input digit") #exit 是退出程序,并且可以输出信息

msg='''
----------------- info of %s ----------------
Name :  %s
Age  :  %s
Job  :  %s
Salary :  %s
----------------- end -----------------------
''' %(name,name,age,job,salary)

print(msg)

结果如下:

Name: jackie
Age: 26
Job: IT
Salary: 4000d
You must be input digit

Process finished with exit code 1

再次升级:

我们要求age 必须输入数字,salary 必须带有小数,再添加一行退休时间

代码如下:

#!/usr/bin/env python

name=input("Name: ")
age=int(input("Age: "))
job=input("Job: ")
salary=int(input("Salary: ")) #这里是因为%f 前提必须是数字,而变量传入都是字符串

msg='''
----------------- info of %s ----------------
Name :  %s
Age  :  %d  #%d 为整数型
Job  :  %s
Salary :  %f #%f 为浮点型
You will be retired in %d years
----------------- end -----------------------
''' %(name,name,age,job,salary,65-age)

print(msg)

执行结果:

Name: jackie
Age: 26
Job: IT
Salary: 4000

----------------- info of jackie ----------------
Name :  jackie
Age  :  26
Job  :  IT
Salary :  4000.000000
You will be retired in 39 years
----------------- end -----------------------

格式化输出:

占位符

           %s    string   字符串

           %d    digit     整数型

           %f     float     浮点数

结束

^  - ^ ...

 

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐