为什么Python程序员都爱用String Format?

刚学Python的小白们,有没有遇到过这种情况?想把用户输入的姓名和年龄拼成一句话,结果用加号连起来发现中间没有空格;想把商品价格保留两位小数,结果直接打印出来变成了29.0;想对齐表格数据,折腾半天还是歪七扭八… 这时候老司机们总会轻飘飘甩出一句:”用format啊!” 这个神秘的format到底怎么用?今天咱们就把它扒个底朝天!
先搞懂基本套路 打开Python随便敲个例子:print(“{}今年{}岁”.format(“老王”, 35))。看见没?字符串里的花括号就是占位符,format里的参数按顺序填进去。要是参数顺序搞反了怎么办?加个数字编号呗:”{1}看见{0}在吃西瓜”.format(“张三”, “李四”),这时候输出就是”李四看见张三在吃西瓜”。
更聪明的玩法是起名字。比如写个收据模板:”客户:{name} 应付金额:¥{amount}”,调用的时候直接format(name=”星巴克”, amount=38.5)。这样既不怕顺序错乱,代码看着也清楚。
数字处理的魔法 重点来了!处理数字时format简直开挂。想让小数乖乖显示两位?试试”{:.2f}”.format(3.1415),直接变成3.14。要显示百分比?”{:.0%}”.format(0.85)秒变85%。最绝的是对齐功能:”{:<10}”.format(“左对齐”)会在右边补空格凑够10字符,”{:^20}”.format(“居中”)就像用尺子量过一样精准。
常见问题现场解答 “用加号拼接不香吗?”——举个真实案例:当你要拼接10个变量时,加号会让代码变成灾难现场。更别说处理特殊格式时,format能让你少写80%的代码。
“f-string不是更方便?”确实,Python3.6之后的f-string很强大。但format有两个杀手锏:一是兼容老版本Python,二是适合动态生成格式字符串。比如从配置文件读取模板时,format就是最佳选择。
小编亲测踩过的坑:千万别在循环里疯狂调用format!特别是处理海量数据时,先把格式字符串定义好再循环使用,速度能快三倍不止。最后送个彩蛋:”{0!r}”能直接输出变量的repr形式,调试神器你值得拥有!


相关文章:
相关推荐:




