LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 237|回复: 0

更复杂的输出格式

[复制链接]
发表于 2023-12-31 01:29:02 | 显示全部楼层 |阅读模式
更复杂的输出格式
到目前为止我们已遇到过两种写入值的方式: 表达式语句print() 函数。 (第三种方式是使用文件对象的 write() 方法;标准输出文件可以被引用为 sys.stdout。 更多相关信息请参阅标准库参考)。
对输出格式的控制不只是打印空格分隔的值,还需要更多方式。格式化输出包括以下几种方法。
  • 使用 格式化字符串字面值 ,要在字符串开头的引号/三引号前添加 f 或 F 。在这种字符串中,可以在 { 和 } 字符之间输入引用的变量,或字面值的 Python 表达式。
    >>>>>> year = 2016>>> event = 'Referendum'>>> f'Results of the {year} {event}''Results of the 2016 Referendum'

  • 字符串的 str.format() 方法需要更多手动操作。该方法也用 { 和 } 标记替换变量的位置,虽然这种方法支持详细的格式化指令,但需要提供格式化信息。
    >>>>>> yes_votes = 42_572_654>>> no_votes = 43_132_495>>> percentage = yes_votes / (yes_votes + no_votes)>>> '{:-9} YES votes  {:2.2%}'.format(yes_votes, percentage)' 42572654 YES votes  49.67%'

  • 最后,还可以用字符串切片和合并操作完成字符串处理操作,创建任何排版布局。字符串类型还支持将字符串按给定列宽进行填充,这些方法也很有用。

如果不需要花哨的输出,只想快速显示变量进行调试,可以用 repr()str() 函数把值转化为字符串。
str() 函数返回供人阅读的值,repr() 则生成适于解释器读取的值(如果没有等效的语法,则强制执行 SyntaxError)。对于没有支持供人阅读展示结果的对象, str() 返回与 repr() 相同的值。一般情况下,数字、列表或字典等结构的值,使用这两个函数输出的表现形式是一样的。字符串有两种不同的表现形式。
示例如下:
>>>>>> s = 'Hello, world.'>>> str(s)'Hello, world.'>>> repr(s)"'Hello, world.'">>> str(1/7)'0.14285714285714285'>>> x = 10 * 3.25>>> y = 200 * 200>>> s = 'The value of x is ' + repr(x) + ', and y is ' + repr(y) + '...'>>> print(s)The value of x is 32.5, and y is 40000...>>> # The repr() of a string adds string quotes and backslashes:... hello = 'hello, world\n'>>> hellos = repr(hello)>>> print(hellos)'hello, world\n'>>> # The argument to repr() may be any Python object:... repr((x, y, ('spam', 'eggs')))"(32.5, 40000, ('spam', 'eggs'))"

string 模块包含 Template 类,提供了将值替换为字符串的另一种方法。该类使用 $x 占位符,并用字典的值进行替换,但对格式控制的支持比较有限。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表