格式化输出
现在需要我们录入我们身边好友的信息,格式如下:
------------ info of Alex Li ----------
Name : Alex Li
Age : 22
job : Teacher
Hobbie: girl
------------- end ----------------
我们现在能想到的办法就是用一下方法:
name = input('请输入姓名:') age = input('请输入年龄:') job = input('请输入职业:') hobby = input('请输入爱好:') a = '------------ info of Alex Li ----------' b = 'Name:' c = 'Age:' d = 'Job:' e = 'Hobby:' f = '------------- end ----------------' print(a+' '+b+name+' '+c+age+' '+d+job+' '+e+hobby+' '+f)
# 运行结果
------------ info of Alex Li ----------
Name:meet
Age:18
Job:it
Hobby:3
------------- end ----------------
这样写完全没有问题,但是会不会比较繁琐呢,有些大佬肯定会想这不都实现了吗,还逼叨逼什么啊,那是因为没有体验过格式化输出有多霸道,我们现在来体验下霸道的姿势
%s — 字符串类型
name = input('请输入姓名:') age = input('请输入年龄:') job = input('请输入职业:') hobby = input('请输入爱好:') msg = ''' ------------ info of Alex Li ---------- Name : %s Age : %s job : %s Hobbie: %s ------------- end ----------------
'''
print(msg%(name,age,job,hobby))
我们但从代码的数量来看,这样就比那样的少,看到这里有细心的老铁们肯定在想%s这是啥玩意?
% 是一个占位, 回想下我们小时候给朋友占位子的场景,是的这个就是占位.那s又是什么呢? s代码的字符串类型;
%d|%i — 数字类型
name = input('>>>') s1 = '1234%d'%int(name) s2 = '1234%i'%int(name) print(s1) print(s2)
结果:
>>>89
123489
123489
# %d和%i这种格式化只能用数字来填补占位
%% — 转义
num = input('>>>') s= '目前学习进度:%s%%'%num print(s)
结果:
>>>80
目前学习进度:80%
# 如果我们字符串中想要显示单独的%就需要用来个%%来转义,不然程序会认为那是一个占位