企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# Python 输入,输出和导入 > 原文: [https://www.programiz.com/python-programming/input-output-import](https://www.programiz.com/python-programming/input-output-import) #### 本教程重点介绍两个内置函数`print()`和`input()`,以在 Python 中执行 I/O 任务。 另外,您还将学习如何导入模块并在程序中使用它们。 Python 提供了许多[内置函数](https://www.programiz.com/python-programming/built-in-function),这些函数可以在 Python 提示符下随时使用。 `input()`和`print()`之类的某些函数分别广泛用于标准输入和输出操作。 让我们首先看一下输出部分。 * * * ## 使用`print()`函数的 Python 输出 我们使用`print()`函数将数据输出到标准输出设备(屏幕)。 我们也可以[将数据输出到文件](https://www.programiz.com/python-programming/file-operation)中,但这将在后面讨论。 下面给出了其用法示例。 ```py print('This sentence is output to the screen') ``` **输出** ```py This sentence is output to the screen ``` 下面给出另一个示例: ```py a = 5 print('The value of a is', a) ``` **输出**: ```py The value of a is 5 ``` 在第二个`print()`语句中,我们可以注意到[字符串](https://www.programiz.com/python-programming/string)与变量`sum`的值之间添加了空格。 这是默认设置,但是我们可以更改它。 `print()`函数的实际语法为: ```py print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False) ``` 此处,`objects`是要打印的值。 值之间使用`sep`分隔符。 默认为空格字符。 打印所有值后,将打印`end`。 默认为新行。 `file`是打印值的对象,其默认值为`sys.stdout`(屏幕)。 这是一个例子来说明这一点。 ```py print(1, 2, 3, 4) print(1, 2, 3, 4, sep='*') print(1, 2, 3, 4, sep='#', end='&') ``` **输出**: ```py 1 2 3 4 1*2*3*4 1#2#3#4& ``` * * * ## 输出格式 有时我们想格式化输出,使其看起来很吸引人。 这可以通过使用`str.format()`方法来完成。 该方法对任何字符串对象都是可见的。 ```py >>> x = 5; y = 10 >>> print('The value of x is {} and y is {}'.format(x,y)) The value of x is 5 and y is 10 ``` 此处,花括号`{}`用作占位符。 我们可以使用数字(元组索引)指定它们的打印顺序。 ```py print('I love {0} and {1}'.format('bread','butter')) print('I love {1} and {0}'.format('bread','butter')) ``` **输出**: ```py I love bread and butter I love butter and bread ``` 我们甚至可以使用关键字参数来格式化字符串。 ```py >>> print('Hello {name}, {greeting}'.format(greeting = 'Goodmorning', name = 'John')) Hello John, Goodmorning ``` 我们还可以格式化字符串,例如 [C 编程语言](https://www.programiz.com/c-programming)中使用的旧`sprintf()`样式。 我们使用`%`运算符来完成此操作。 ```py >>> x = 12.3456789 >>> print('The value of x is %3.2f' %x) The value of x is 12.35 >>> print('The value of x is %3.4f' %x) The value of x is 12.3457 ``` * * * ## Python 输入 到目前为止,我们的程序是静态的。 变量的值已定义或硬编码到源代码中。 为了提供灵活性,我们可能希望从用户那里获取输入。 在 Python 中,我们具有`input()`函数来允许此操作。`input()`的语法为: ```py input([prompt]) ``` 其中`prompt`是我们希望在屏幕上显示的字符串。 它是可选的。 ```py >>> num = input('Enter a number: ') Enter a number: 10 >>> num '10' ``` 在这里,我们可以看到输入的值`10`是字符串,而不是数字。 要将其转换为数字,我们可以使用`int()`或`float()`函数。 ```py >>> int('10') 10 >>> float('10') 10.0 ``` 可以使用`eval()`函数执行相同的操作。 但是`eval`更进一步。 如果输入是字符串,它甚至可以计算表达式 ```py >>> int('2+3') Traceback (most recent call last): File "<string>", line 301, in runcode File "<interactive input>", line 1, in <module> ValueError: invalid literal for int() with base 10: '2+3' >>> eval('2+3') 5 ``` * * * ## Python 导入 当我们的程序变得更大时,将其分解为不同的模块是一个好主意。 模块是包含 Python 定义和语句的文件。 [Python 模块](https://www.programiz.com/python-programming/modules)具有文件名,并以扩展名`.py`结尾。 可以将模块内部的定义导入另一个模块或 Python 中的交互式解释器。 我们使用`import`关键字执行此操作。 例如,我们可以通过输入以下行来导入`math`模块: ```py import math ``` 我们可以通过以下方式使用该模块: ```py import math print(math.pi) ``` **输出**: ```py 3.141592653589793 ``` 现在`math`模块内的所有定义在我们的范围内可用。 我们还可以仅使用`from`关键字导入一些特定的属性和函数。 例如: ```py >>> from math import pi >>> pi 3.141592653589793 ``` 导入模块时,Python 会查看`sys.path`中定义的几个位置。 它是目录位置的列表。 ```py >>> import sys >>> sys.path ['', 'C:\\Python33\\Lib\\idlelib', 'C:\\Windows\\system32\\python33.zip', 'C:\\Python33\\DLLs', 'C:\\Python33\\lib', 'C:\\Python33', 'C:\\Python33\\lib\\site-packages'] ``` 我们也可以将自己的位置添加到此列表中。