Pythonfstrings比你想象的更强大
格式化字符串文字也称为f字符串自Python3。6以来就已经存在,所以我们都知道它们是什么以及如何使用它们。然而,你可能不知道fstrings的一些比较实用跟方便的功能。因此让这篇文章一下带你了解一下fstrings的一些功能,希望你在日常编码中使用的这些很棒的fstrings功能。日期和时间格式
使用f字符串应用数字格式非常常见,但你知道你还可以格式化日期和时间戳字符串吗?importdatetimetodaydatetime。datetime。today()print(f{today:Ymd})20230203print(f{today:Y})2023
fstrings可以像使用datetime。strftime方法一样格式化日期和时间。当你意识到除了文档中提到的几种格式之外还有更多格式时,这非常好。Pythonstrftime还支持底层C实现支持的所有格式,这可能因平台而异,这就是文档中未提及的原因。话虽如此,你仍然可以利用这些格式并使用例如F,它等效于Ymd或T等效于H:M:S,还值得一提的是x和X分别是语言环境首选的日期和时间格式。这些格式的使用显然不限于f字符串。有关时间格式的完整列表请参阅:https:manpages。debian。orgbullseyemanpagesdevstrftime。3。en。html变量名和调试
fstring功能(从Python3。8开始)最近新增的功能之一是能够打印变量名称和值:x10y25print(fx{x},y{y})x10,y25print(f{x},{y})Better!(3。8)x10,y25print(f{x:。3f})x10。000
此功能称为调试,可以与其他修饰符结合使用。它还保留空格,因此f{x}和f{x}将产生不同的字符串。字符串表示
打印类实例时,str默认使用类的方法来表示字符串。但是,如果我们想强制使用repr,我们可以使用!r转换标志:classUser:definit(self,firstname,lastname):self。firstnamefirstnameself。lastnamelastnamedefstr(self):returnf{self。firstname}{self。lastname}defrepr(self):returnfUsersnameis:{self。firstname}{self。lastname}userUser(John,Doe)print(f{user})JohnDoeprint(f{user!r})Usersnameis:JohnDoe
我们也可以只repr(somevar)在f字符串内部调用,但使用转换标志是一个很好的习惯和简洁的解决方案。fstrings杰出的性能表现
强大的功能和语法糖通常会带来性能损失,但对于f字符串而言情况并非如此:pythonmtimeitsx,yHello,Worldf{x}{y}fromstringimportTemplatex,yHello,Worldprint(f{x}{y})39。6nsecperloopFast!print(xy)43。5nsecperloopprint(。join((x,y)))58。1nsecperloopprint(ss(x,y))103nsecperloopprint({}{}。format(x,y))141nsecperloopprint(Template(xy)。substitute(xx,yy))1。24usecperloopSlow!
上面的示例使用timeit如下模块进行了测试:pythonmtimeitsx,yHello,Worldf{x}{y}正如你所看到的,f字符串实际上是Python提供的所有格式化选项中最快的。因此,即使你更喜欢使用一些较旧的格式化选项,你也可以考虑切换到fstrings只是为了提高性能。格式化规范的全部功能
Fstrings支持Python的FormatSpecificationMiniLanguage,所以你可以在它们的修饰符中嵌入很多格式化操作:texthelloworldCentertext:print(f{text:15})helloworldnumber1234567890Setseparatorprint(f{number:,})1,234,567,890number123Addleadingzerosprint(f{number:08})00000123
Python的FormatSpecificationMiniLanguage不仅仅包括格式化数字和日期的选项。它允许我们对齐或居中文本、添加前导零空格、设置千位分隔符等等。所有这些显然不仅适用于f字符串,而且适用于所有其他格式设置选项。嵌套fstrings
如果基本的fstrings不足以满足你的格式化需求,你甚至可以将它们相互嵌套:number254。3463print(f{f{number:。3f}:10s})254。346
你可以将fstrings嵌入fstrings中以解决棘手的格式化问题,例如将美元符号添加到右对齐的浮点数,如上所示。
如果你需要在格式说明符部分使用变量,也可以使用嵌套的f字符串。这也可以使f字符串更具可读性:importdecimalwidth8precision3valuedecimal。Decimal(42。12345)print(foutput:{value:{width}。{precision}})output:42。1条件格式
在上面带有嵌套f字符串的示例之上,我们可以更进一步,在内部f字符串中使用三元条件运算符:importdecimalvaluedecimal。Decimal(42。12345)print(fResult:{value:{4。3ifvalue100else8。3}})Result:42。1valuedecimal。Decimal(142。12345)print(fResult:{value:{4。2ifvalue100else8。3}})Result:142lambda表达式
如果你想突破fstrings的限制,同时让阅读你代码的人觉得你很牛逼,那么你可以使用lambdasprint(f{(lambdax:x2)(3)})9
在这种情况下,lambda表达式周围的括号是强制性的,因为:否则将由f字符串解释。结束语
正如我们在这里看到的,fstrings确实非常强大,并且具有比大多数人想象的更多的功能。然而,大多数这些未知特性在Python文档中都有提及,因此我建议你不仅阅读fstrings,还阅读你可能使用的任何其他Python模块特性的文档页面。深入研究文档通常会帮助你发现一些非常有用的功能。
鼓励多生孩子,两会的提案太给力,一位委员却泼了盆冷水2022年的数据显示,我国的人口形势不乐观。全年死亡人口为1041万,而新出生人口为956万,人口已经出现负增长。更要命的是,这也是我国新出生人口首次跌破千万,连续3年出生率低于1
张信哲现身杭州亚组委提前透露大莲花演唱会选曲方向2023年4月28日,迎亚运张信哲未来式2。0演唱会将在杭州奥体中心体育场(大莲花)开唱。3月19月下午,迎亚运演唱会在杭举行新闻发布会,介绍演出筹备和场馆相关情况,主唱张信哲亲临
首届深圳盐田山海半程马拉松26日开跑读特客户端深圳新闻网2023年3月19日讯(深圳特区报记者黄子芸吴禾昆)奔赴山海逐梦湾区!3月17日,首届深圳盐田山海半程马拉松新闻发布会在盐田区政府新闻发布厅举行,现场对赛事筹备
国羽收获两冠两亚,陈雨菲惜败于安洗莹文羊城晚报全媒体记者苏荇2023年全英羽毛球公开赛19日进行了决赛争夺,国羽夺得两冠两亚,混双男单夺冠,男单女单屈居亚军。国羽最先在混双赛场奏响凯歌。头号种子郑思维黄雅琼遭遇韩国组
中国足协多贪官,篮协多色狼,姚明手下接二连三输在下半身最近几日,作为我国三大球的中国足球不断爆出买球丑闻,从职业球员到国家队主教练再到足球主席都不断落马。而作为中国篮球也与中国足球上演了一出难兄难弟,在足球丑闻频发的情况下,中国篮协主
国乒获超300万奖金!孙颖莎三冠王77万,樊振东75万,马龙41万WTT大满贯新加坡站的比赛已经落下帷幕,长达13天的比赛,毕竟是大满贯高级别比赛,汇集了几乎世界各高手参加,国乒也是全主力加上部分非主力小将参加。整体看国乒的发挥无疑是最出色强大的
山西出土一口千年金棺,为何12年后才打开?专家里面东西太重要碰都不要碰!考古队员发现一座纯金打造的棺椁,正要打开时,立马被专家大声拦住。金棺内究竟藏着什么秘密,让专家都望而却步。直到12年后,大家才知晓其中奥秘。地宫初现2008年山西太原龙
孩子吃完木薯上幼儿园,三小时后离世,医生这东西没熟有剧毒文菁妈01hr菁妈小的时候在农村长大,而农村有一种非常常见的食物就叫木薯。每次木薯丰收的时候,最主要是卖给别人拿来做淀粉,而有一些家里面也会自己拿来吃。但是在吃木薯之前一般会把皮刨
人体应该是酸性的还是碱性的?保持正确的pH值对于最佳的身体机能至关重要,人体应保持微碱性pH值,约为7。365。pH值范围从0到14,其中0表示酸性最强,7表示中性,14表示碱性最强。身体的所有器官细胞和组织
细思极恐泰国男模餐厅,姐妹们注意了最近泰国男模餐厅很火,引来无数中国女孩们疯狂想出国去游玩,也有大量女网红去了,还拍照发视频到处宣传,那里真的安全吗?请大家避雷了,特别是女孩子们需要注意安全了,就跟去缅甸一样,先是
缅北,一个让人恐怖的地方缅北,一个恐怖的名字,熟悉又陌生。缅北位于缅甸北部,历史上曾经属于华夏,带近代某些原因,归属了缅甸,与我国云南接壤,地区经济落后,人民生活水平很低,以毒品交易,洗钱贩毒为主。毒三角
初三真的是一次很大很大的离别三年前谁都不认识谁。三年后谁都了解谁。三年从陌生到熟悉。三年每个人都在这成长了。三年每个人都在这蜕变了。三年把酸甜苦辣都尝遍了。三年把喜怒哀乐都经历了。三年一个看似很漫长的日子就这
一个陌生女人的来信我爱你,与你无关一个陌生女人的来信我爱你,与你无关01心动是一个人的兵荒马乱,你一个人征战沙场无人知晓,战死沙场无人关心,从头到尾,只有你一人。我们之中很少有人能够不计成本地爱一个人了,除了年纪实
对于人的生存来说,最好的技术是什么样的?少数人把世界塑造成一场游戏,他们在背后操纵游戏规则,确保能赢的人始终是他们。你想生存下去,且有机会赢,就得找到真实的事和人。人类从单细胞开始,想要活下去就要吞噬能量,获取生存空间,
缘聚缘散聚散随缘天下没有不散的宴席人和人相处是有时间局限的至于相处时间的长短当由相互之间的吸引力决定缘聚缘散聚散随缘听天由命比如年轻时候的一对恩爱的夫妻到了中年之后两个人的感情发生了变化任何解释都
大量肥美海肠涌上烟台海滩,被称作海中人参是天然的味精9月16日,在台风梅花过后,烟台有很多市民感受到了大自然的馈赠,大量肥美海肠涌上了海滩。有市民称,沙滩上水里到处都是海肠,密密麻麻,直接捞就行了。海肠平常生活在浅海沙里,非常不容易
到苗寨旅游切记,如果苗族女孩送你一块布,虽然不要钱但别轻易接每个地方都有每个地方的风土民情,作为外来人的我们,要对当地予以充分的尊重,这样我们的社会才能和谐。(此处已添加小程序,请到今日头条客户端查看)比如说,现在的人们都愿意出去旅游,而那
2连板南天信息收购军品业务公司目前正在办理登记过户相关流程2连板南天信息9月18日发布股票交易异常波动公告,公司股票于9月15日9月16日连续两个交易日收盘价格涨幅偏离值累计超过20。根据有关规定,公司股票交易属于异常波动的情况。经核查,
发生事故,造成1人死亡!300亿A股控股子公司停产整顿中国基金报记者李智9月18日下午,晋控煤业公告称,控股子公司塔山矿于9月15日发生一起事故,造成1人死亡。塔山矿已于9月16日停产,待联合调查组事故认定后将按照要求落实整改措施,在
如何轻松回奶母乳是宝宝最好的食物,当然也有一些特殊原因,让妈妈们不得不给宝宝断奶,下面我将向各位想断奶的妈妈们分享一些回奶的方法。断奶最好选择比较舒适的季节进行断奶,这样宝宝不会太难受,可以选
想知道自己有没有怀孕,从内裤上就能发现,准确率非常高相信各位想要宝宝的姐妹,都想第一时间知道自己有没有怀孕,每次排卵同房后,都会拿着验孕棒在那儿玩尿,但一次次的失败,让她们都精疲力尽。其实除了用验孕棒测试是否怀孕之外,我们也可以通过
芯片反腐再起波澜大基金又一高管被查,3家上市公司深夜回应9月16日,中央纪委国家监委网站发布消息,国家开发银行管理企业副总裁任凯,正接受审查调查。该事件波及3家上市公司。当日晚间,中芯国际(688981。SH)三安光电(600703。S