范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Pythonfstrings比你想象的更强大

  格式化字符串文字——也称为 f 字符串 ——自 Python 3.6 以来就已经存在,所以我们都知道它们是什么以及如何使用它们。然而,你可能不知道 f-strings的一些比较实用跟方便的功能。因此让这篇文章一下带你了解一下f-strings的一些功能,希望你在日常编码中使用的这些很棒的 f-strings功能。 日期和时间格式
  使用 f 字符串应用数字格式非常常见,但你知道你还可以格式化日期和时间戳字符串吗? import datetime today = datetime.datetime.today() print(f"{today:%Y-%m-%d}") # 2023-02-03 print(f"{today:%Y}") # 2023
  f-strings 可以像使用 datetime.strftime  方法一样格式化日期和时间。当你意识到除了文档中提到的几种格式之外还有更多格式时,这非常好。Python  strftime  还支持底层 C 实现支持的所有格式,这可能因平台而异,这就是文档中未提及的原因。话虽如此,你仍然可以利用这些格式并使用例如 %F  ,它等效于 %Y-%m-%d  或 %T  等效于 %H:%M:%S  ,还值得一提的是 %x  和 %X  分别是语言环境首选的日期和时间格式。这些格式的使用显然不限于 f 字符串。有关时间格式的完整列表请参阅: https://manpages.debian.org/bullseye/manpages-dev/strftime.3.en.html变量名和调试
  f-string 功能(从 Python 3.8 开始)最近新增的功能之一是能够打印变量名称和值: x = 10 y = 25 print(f"x = {x}, y = {y}") # x = 10, y = 25 print(f"{x = }, {y = }")  # Better! (3.8+) # x = 10, y = 25  print(f"{x = :.3f}") # x = 10.000
  此功能称为 "调试" ,可以与其他 修饰符结合使用。它还保留空格,因此 f"{x = }"  和 f"{x=}"  将产生不同的字符串。 字符串表示
  打印类实例时, __str__  默认使用类的方法来表示字符串。但是,如果我们想强制使用 __repr__  ,我们可以使用 !r  转换标志: class User:     def __init__(self, first_name, last_name):         self.first_name = first_name         self.last_name = last_name      def __str__(self):         return f"{self.first_name} {self.last_name}"      def __repr__(self):         return f"User"s name is: {self.first_name} {self.last_name}"  user = User("John", "Doe") print(f"{user}") # John Doe print(f"{user!r}") # User"s name is: John Doe
  我们也可以只 repr(some_var)  在 f 字符串内部调用,但使用转换标志是一个很好的习惯和简洁的解决方案。 f-strings杰出的性能表现
  强大的功能和语法糖通常会带来性能损失,但对于 f 字符串而言情况并非如此: # python -m timeit -s "x, y = "Hello", "World"" "f"{x} {y}"" from string import Template  x, y = "Hello", "World"  print(f"{x} {y}")  # 39.6 nsec per loop - Fast! print(x + " " + y)  # 43.5 nsec per loop print(" ".join((x, y)))  # 58.1 nsec per loop print("%s %s" % (x, y))  # 103 nsec per loop print("{} {}".format(x, y))  # 141 nsec per loop print(Template("$x $y").substitute(x=x, y=y))  # 1.24 usec per loop - Slow!
  上面的示例使用 timeit  如下模块进行了测试: python -m timeit -s "x, y = "Hello", "World"" "f"{x} {y}""  正如你所看到的,f 字符串实际上是 Python 提供的所有格式化选项中最快的。因此,即使你更喜欢使用一些较旧的格式化选项,你也可以考虑切换到 f-strings 只是为了提高性能。 格式化规范的全部功能
  F-strings 支持 Python 的 Format Specification Mini-Language,所以你可以在它们的修饰符中嵌入很多格式化操作: text = "hello world"  # Center text: print(f"{text:^15}") # "  hello world  "  number = 1234567890 # Set separator print(f"{number:,}") # 1,234,567,890  number = 123 # Add leading zeros print(f"{number:08}") # 00000123
  Python 的 Format Specification Mini-Language不仅仅包括格式化数字和日期的选项。它允许我们对齐或居中文本、添加前导零/空格、设置千位分隔符等等。所有这些显然不仅适用于 f 字符串,而且适用于所有其他格式设置选项。 嵌套 f-strings
  如果基本的 f-strings 不足以满足你的格式化需求,你甚至可以将它们相互嵌套: number = 254.3463 print(f"{f"${number:.3f}":>10s}") # "  $254.346"
  你可以将 f-strings 嵌入 f-strings 中以解决棘手的格式化问题,例如将美元符号添加到右对齐的浮点数,如上所示。
  如果你需要在格式说明符部分使用变量,也可以使用嵌套的 f 字符串。这也可以使 f 字符串更具可读性: import decimal width = 8 precision = 3 value = decimal.Decimal("42.12345") print(f"output: {value:{width}.{precision}}") # "output:     42.1"条件格式
  在上面带有嵌套 f 字符串的示例之上,我们可以更进一步,在内部 f 字符串中使用三元条件运算符: import decimal value = decimal.Decimal("42.12345") print(f"Result: {value:{"4.3" if value < 100 else "8.3"}}") # Result: 42.1 value = decimal.Decimal("142.12345") print(f"Result: {value:{"4.2" if value < 100 else "8.3"}}") # Result:      142lambda表达式
  如果你想突破 f-strings 的限制,同时让阅读你代码的人觉得你很牛逼,那么你可以使用 lambdas print(f"{(lambda x: x**2)(3)}") # 9
  在这种情况下,lambda 表达式周围的括号是强制性的,因为 :  否则将由 f 字符串解释。 结束语
  正如我们在这里看到的,f-strings确实非常强大,并且具有比大多数人想象的更多的功能。然而,大多数这些"未知"特性在 Python 文档中都有提及,因此我建议你不仅阅读 f-strings,还阅读你可能使用的任何其他 Python 模块/特性的文档页面。 深入研究文档通常会帮助你发现一些非常有用的功能。

2022卡塔尔世界杯32强巡礼欧洲中国队英格兰今天给大家带来世界杯32强巡礼英格兰作为现代足球的发源地,英格兰有当今的世界第一的足球联赛英超。但老球迷都听说过这么一句话。足坛三大错觉英格兰很强意大利很弱阿根廷能夺冠。那么,作用联合中国电信推出双旗舰折叠屏手机三星要重返中国市场?近日,中国电信与三星电子联合推出双旗舰折叠屏手机心系天下三星W23W23Flip,两款机型均搭载采用4nm制程工艺的高通骁龙8Gen1移动平台,并配备装甲铝材质边框,支持IPX8级纳税额远超四大银行以及华为阿里腾讯,中国烟草为何能独占鳌头作者三二里一年1。3万亿,日均36亿,中国缴税最多的企业你知道是哪一家吗?不是四大行中纳税额最多的工商银行,四大行加起来的纳税额也没有它一家多。估计也不是新晋的核酸产业吧?这家企业美国为什么能够通过美元收割全世界,而中国却不能接上回继续说,二战后通过强大的美元体系,尽情收割世界各国韭菜。第一,就是靠发行国债。因为美元霸权的存在,美元成了全球最主要的外汇储备。而各国在把美元作为主要的外汇储备时,不可能全都49!中国斯诺克名将连输8局崩溃丢冠,无缘比肩赵心童北京时间2022年10月24日,斯诺克北爱尔兰公开赛上演压轴大戏,决赛由卫冕冠军马克艾伦对阵周跃龙。中国名将周跃龙一度以41领先,但是他之后竟然连输8局,以特别崩溃的方式丢掉了冠军中国女苦行僧,每年15天苦行,不带吃喝徒步500公里一路乞食信仰是一种精神寄托,由于每个人都是独立的个体,所以信仰并不相同,这也就导致世间出现了那么多教派和思想。不知你可曾见过,每逢正月十五,都有市集大规模的娱乐活动,十里八乡的村民都纷纷赶生活既要尽心,也要随心1生活既要尽心,也要随心,既要决心,也要开心。希望在朴素的生活里拥有更多的素喜光阴,慢煮岁月与伴,随心随欲随安。2去找一个像太阳一样的人,帮你晒晒所有不值一提的迷茫不攀比,不期望,退休后,真正的幸福,是懂得遵循内心地活着白落梅在新书相逢如初见,回首是一生里写道若可,愿人间所有的相逢无牵绊,别离无挂碍。想来人生后来的境界,是简单自持,铅华洗尽。万般修饰,几多纷纭,为的还是一茶一饭,一人一心地生活。许2022年幽默风趣富有哲理的金句(18)1。人品这东西,今天缺个角,明天裂道缝,也就离塌陷不远了。人品是做人最硬的底牌。以宽容之心待人,以义气之心处友,以慈悲之心离世。2。当有人问你在外面混得怎么样,你只需说外面的世界很落霞是另一种想念夕阳无限好只是近黄昏晚霞晚霞不是一天的事,它是每个人的人生。我们从出生开始,就经历着感受着,在生命的道路上留下自己的印记。在人或人的一生中可以留下多少遗憾?晚霞不是最好的答案,它却不雨花自落,无风絮自飞一颗初心的单纯充满着万般的好奇年少的心如初春早晨叶尖的露珠清澈透明无知纯净想起来总是,那么天真无邪那时总有一个想法想知道天有多高?地有多厚?总是经常捡起一粒石子拼命用力地抛向天空看
11月新能源销量比亚迪卖疯了,小鹏还在挣扎中虽然是个周末,但新能源车企还是如期发布了11月销量数据。从各方数据看,新能源产业剧烈波动的趋势仍在延续,多数品牌处于涨幅中,也有部分品牌陷入持续挣扎中。其中,比亚迪和小鹏成为两个极孙德喜丨与泰国人游云南与泰国人游云南孙德喜云南是中国西南地区的一个省,到云南旅游等于回国,实质上已经不在旅泰的范围之内。但是,从另外一方面讲,我是作为泰国乌汶教育考察团的一员赴云南旅游的,而且一直与泰国我生活的城市烟台烟台,山东省辖地级市,型大城市,地处山东半岛东北部。烟台市属暖温带大陆性季风气候,雨水适中,空气湿润,气候温和,冬无严寒,夏无酷暑。城市荣誉中国最具幸福感城市国家森林城市国家园林城浙江文旅观察良渚文创为何圈粉无数?良渚周历杭州良渚遗址管理区管理委员会供图中新网杭州12月4日电题浙江文旅观察良渚文创为何圈粉无数?记者童笑雨2022年的余额不足一个月,良渚2023周历已上线。精美的外表厚实细腻的深圳又多了个遛娃遛女朋友的绝佳打卡地浮于山谷,随溪蜿蜒,如一条白色巨龙游憩于一片碧绿的山林中这就是广东万里碧道深圳罗湖正坑水段中的碧谷流岚白桥。一踏上白桥,心情随之激荡。向前望,那雪白的桥身蜿蜒在浓密碧绿的山林中,显大湾区来了!一个世界级城市群正在形成,深入浅出带你了解大湾区大湾区的全称是粤港澳大湾区。一个与纽约湾区旧金山湾区东京大湾区并驾齐驱的世界级城市群,由广东9市和香港澳门共11个城市构成。它占地面积只有全国的0。6,拥有4。9的常住人口比例,但小众刚需下的轻户外一场社交感主导的诗与远方图为西安青年王晨(前排)在一场徒步活动中。李震摄中新网西安12月4日电题小众刚需下的轻户外一场社交感主导的诗与远方中新网记者张一辰草甸岩石山路森林穿越旅拍当上述元素同时出现时,意味游齐云山七律。游齐云山云水禅心(聂尚奎)山势巍峨入九天,奇峰雾绕隐群巅。丹崖耸翠瑶台过,曲涧流湍玉带悬。跪拜痴男尊道祖,崇迷信女敬真仙。江南福地无双境,御笔钦题怪石间。(孤雁格)1齐云山古忽然,想去故宫了那些冬日里的寒意终究会转换成春天里的温煦花香一如故宫里的繁花纵使疫情的阴霾还未完全消散可一旦春风拂来它们依然会用最灿烂的容颜迎接最明媚的春光梨花四月伊始人们的目光便被承乾宫的一树梨武夷山自由行登峰赏景夜船游溪武夷山玉女峰中国境内共有四处世界文化和自然双重遗产泰山黄山峨眉山乐山大佛,以及武夷山。武夷山不仅是风景名胜,还有很多难能可贵的古人诗词摩崖题刻,值得拜访和细细品赏。冬季,我们深入武距离深圳很近,广东被忽略的小城市,四季气候很宜居头条创作挑战赛深圳,是很受人欢迎的城市,多少人不远千里,来到深圳发展,不是为了看城市的路灯有多亮,只是为了能看远一点,再远一点。有人留在了繁华的深圳,却不知深圳周边,还有着慢节奏的