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 浮点数
结束
^ - ^ ...
上一篇: 求1+2+...+n(Java)
下一篇: python学习第一天