Python中有趣的F-Strings

Python学习群:593088321

Python3.6中引入了一种新的字符串格式化的机制,为Literal String Interpolation(即字符串的插值),或者是一种更为通俗的名称,为F-Strings,因为该字符串格式化是以 f 开头的。


可以先看一下之前所拥有的字符串格式化的处理方式:


one, two = 1, 2_format = '{},{}'.format(one, two)_percent = '%s,%s' % (one, two)_concatenation = str(one) + ',' + str(two)_join = ','.join((str(one),str(two)))


这四种都是字符串常用的格式化方式。那么,F-Strings 如何进行字符串的格式化呢?是非常简单直观的:


_fstring = f'{one},{two}'


这会使得代码更为简洁,执行效率也会更高。对于执行效率,感兴趣的同学可以运用timeit模块比较一下这几种字符串格式化方法的执行时间。


F-Strings更流行的一个原因是在格式化的时候非常直观,即使不了解Python的关键字也可以非常好的看懂代码。在前面4种格式化,需要了解format, join,str,%等函数或者操作符。这在进行运算时也有所体现:


_fstring = f'Total: {one + two}'  # Go f-string!_format = 'Total: {}'.format(one + two)_percent = 'Total: %s' % (one + two)_concatenation = 'Total: ' + str(one + two)


最简单最Pythonic的代码还是F-Strings!


最后,来看一下一个简单的应用。在Web工程中,通常会记录两种流水日志,一种是此Web服务调用外部接口的日志,称为外部流水日志;另外一种是调用此Web服务的流水日志,称为内部流水日志。通常流水日志是一天记录一张表,那么生成流水日志的表名可以通过F-Strings来实现:


def makelogtablename(type, date):    """    生成记录流水日志的表名    :param type: 内部流水inport; 外部流水outport    :param date: 日期    :return:    """    return f'log_{type}_detail_{date}'


非常简洁。调用的时候仅仅需要如下调用:


makelogtablename("inport","20170904")


允许的结果为log_inport_detail_20170904。


你发现F-Strings的简洁之处了吗?快快打开Pycharm尝试一番吧。

Python学习群:593088321

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,999评论 19 139
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,921评论 0 38
  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 4,792评论 0 11
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,779评论 0 33
  • 1.成片成片的油菜花,金黄金黄的,建湖的乡下在这个季节,被笼上了一层金色的梦。昨天刚下了雨,天色依然昏沉,空气中弥...
    骑着单车的曼青阅读 268评论 0 2