# 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']
```

我们也可以将自己的位置添加到此列表中。