暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Python 基础知识整理 - 输入和输出(1)

数据库杂货铺 2021-12-14
278


输入和输出

 

有几种方法可以显示程序的输出;数据可以以人类可读的形式输出,也可以写入文件以供将来使用。

 

输出格式化

 

到目前为止,我们遇到了两种输出值的方法:表达式语句和 print() 函数。(第三种方法是使用文件对象的 write() 方法;标准输出文件可以引用为 sys.stdout。)

 

通常,我们希望对输出的格式进行更多的控制,而不是简单地打印以空格分隔的值。有几种方法可以格式化输出。

 

 要使用格式化的字符串字面量,请在开始引号或三重引号前以 f F 开头字符串。在这个字符串中,可以在 { } 个字符之间编写 Python 表达式,该表达式可以引用变量或文字值。

 

year = 2021
target = '没有实现'
print(f'我的{year}目标{target}')

 

运行结果:

 

我的2021目标没有实现

 

 字符串的 str.format() 方法需要更多的手动工作。仍然使用 { } 来标记变量将被替换的位置,并且可以提供详细的格式化指令,但是还是需要提供要格式化的信息。

 

yes_votes = 123
no_votes = 67
percentage = yes_votes / (yes_votes + no_votes)
print('{:-3} 赞成票,占比:{:3.3%}'.format(yes_votes, percentage))

 

运行结果:

 

123 赞成票,占比:64.737%

 

 最后,可以通过使用字符串切片和连接操作来创建可以想到的任何布局,从而完成所有字符串处理。字符串类型有一些方法可以执行有用的操作,将字符串填充到给定的列宽。

 

当不需要花哨的输出,而只是想快速显示一些变量以用于调试时,可以使用 repr() str() 函数将任何值转换为字符串。

 

str() 函数的目的是返回具有可读性的值的表示,而 repr() 函数的目的是生成可以被解释器读取的表示(或者如果没有等效的语法,将强制执行 SyntaxError)。对于没有特定表示便于人类阅读的对象,str() 将返回与 repr() 相同的值。许多值,如数字或结构,如列表和字典,使用这两个函数都有相同的表示。特别是字符串,有两种不同的表示方式。

 

一些例子:

 

s = 'Hello, world.'
print(str(s))
print(repr(s))


print(str(1/7))


x = 10 * 3.25
y = 200 * 200
s = 'x :' + repr(x) + ', y :' + repr(y)
print(s)


hello = 'hello, world\n'
hellos = repr(hello)
print(hellos)


print(repr((x, y, ('烂番茄', '臭鸡蛋'))))

 

运行结果:

 

Hello, world.
'Hello, world.'
0.14285714285714285
x :32.5, y :40000
'hello, world\n'
(32.5, 40000, ('烂番茄', '臭鸡蛋'))

 

string 模块包含一个 Template 类,它提供了另一种将值替换为字符串的方法,使用诸如 $x 之类的占位符并用字典中的值替换它们,但是提供的格式控制要少得多。

 

格式化字符串文本

 

格式化字符串文本(也简称为f字符串)允许在字符串中包含 Python 表达式的值,方法是在字符串前面加上 f F,并将表达式写为 {expression}

 

表达式后面可以有一个可选的格式说明符。这样可以更好地控制值的格式。以下示例将 pi 四舍五入到小数点后三位:

 

import math
print(f'PI 值:{math.pi:.3f}.')

 

运行结果:

 

PI 值:3.142.

 

':' 之后传递一个整数将使该字段能保持一个最小宽度。这对于使列对齐很有用。

 

table = {'刘备': 55, '关羽': 52, '张飞': 46}
for name, age in table.items():
print(f'{name:10} ==> {age:10d}')

 

运行结果:

 

刘备         ==>         55
关羽 ==> 52
张飞 ==> 46

 

在格式化之前,可以使用其他修饰符转换值。'!a' 应用 ascii()'!s' 应用 str(),和 '!r' 应用 repr()

 

animal = '狗'
print(f'我最喜欢的动物是 {animal}.')
print(f'我最喜欢的动物是 {animal!r}.')
print(f'我最喜欢的动物是 {animal!a}.')
print(f'我最喜欢的动物是 {animal!s}.')

 

运行结果:

 

我最喜欢的动物是 狗.
我最喜欢的动物是 '狗'.
我最喜欢的动物是 '\u72d7'.
我最喜欢的动物是 狗.

 

官方文档:

https://docs.python.org/3.9/tutorial/inputoutput.html

文章转载自数据库杂货铺,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论