欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python 格式化输出 / 占位符的使用

程序员文章站 2022-03-13 12:15:11
...

格式化输出

 需求:

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

----------------- 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     浮点数

结束

^  - ^ ...