# 数据类型和变量
> 原文: [https://thepythonguru.com/datatype-varibles/](https://thepythonguru.com/datatype-varibles/)
* * *
于 2020 年 1 月 7 日更新
* * *
变量是命名位置,用于存储对内存中存储的对象的引用。 我们为变量和函数选择的名称通常称为标识符。 在 Python 中,标识符必须遵守以下规则。
1. 所有标识符都必须以字母或下划线(`_`)开头,您不能使用数字。 例如:`my_var`是有效的标识符,但`1digit`不是。
2. 标识符可以包含字母,数字和下划线(`_`)。 例如:`error_404`,`_save`是有效的标识符,但`$name$`(不允许`$`)和`#age`(不允许`#`)是无效的标识符。
3. 它们可以是任何长度。
4. 标识符不能是关键字。 关键字是 Python 用于特殊目的的保留字)。 以下是 Python 3 中的关键字。
```py
False class finally is return
None continue for lambda try
True def from nonlocal while
and del global not with
as elif if or yield
pass else import assert
break except in raise
```
## 给变量赋值
* * *
值是程序可以使用的基本东西。 例如:`1`,`11`,`3.14`和`"hello"`均为值。 在编程术语中,它们通常也称为字面值。 字面值可以是不同的类型,例如`1`,`11`是`int`类型,`3.14`是`float`和`"hello"`是`string`。 记住,在 Python 中,所有东西都是对象,甚至是基本数据类型,例如 int,float,string,我们将在后面的章节中对此进行详细说明。
在 Python 中,您不需要提前声明变量类型。 解释器通过包含的数据自动检测变量的类型。 要将值赋给变量等号(`=`)。 `=`符号也称为赋值运算符。
以下是变量声明的一些示例:
```py
x = 100 # x is integer
pi = 3.14 # pi is float
empname = "python is great" # empname is string
a = b = c = 100 # this statement assign 100 to c, b and a.
```
试试看:
```py
x = 100 # x is integer
pi = 3.14 # pi is float
empname = "python is great" # empname is string
a = b = c = 100 # this statement assign 100 to c, b and a.
print(x) # print the value of variable x
print(pi) # print the value of variable pi
print(empname) # print the value of variable empname
print(a, b, c) # print the value of variable a, b, and c, simultaneously
```
**提示**:
将值分配给变量后,该变量本身不存储值。 而是,变量仅将对象的引用(地址)存储在内存中。 因此,在上面的清单中,变量`x`存储对`100`(`int`对象)的引用(或地址)。 变量`x`本身不存储对象`100`。
## 注释
* * *
注释是说明程序目的或程序工作方式的注释。 注释不是 Python 解释器在运行程序时执行的编程语句。 注释也用于编写程序文档。 在 Python 中,任何以井号(`#`)开头的行均被视为注释。 例如:
```py
# This program prints "hello world"
print("hello world")
```
试一试:
```py
# This program prints "hello world"
print("hello world")
```
在此清单中,第 1 行是注释。 因此,在运行程序时,Python 解释器将忽略它。
我们还可以在语句末尾写注释。 例如:
```py
# This program prints "hello world"
print("hello world") # display "hello world"
```
当注释以这种形式出现时,它们称为最终注释。
试一试:
```py
# This program prints "hello world"
print("hello world") # display hello world
```
## 同时赋值
* * *
同时赋值或多重赋值允许我们一次将值赋给多个变量。 同时分配的语法如下:
```py
var1, var2, ..., varn = exp1, exp2, ..., expn
```
该语句告诉 Python 求值右边的所有表达式,并将它们分配给左边的相应变量。 例如:
```py
a, b = 10, 20
print(a)
print(b)
```
试一试:
```py
a, b = 10, 20
print(a)
print(b)
```
当您想交换两个变量的值时,同时分配非常有帮助。 例如:
```py
>>> x = 1 # initial value of x is 1
>>> y = 2 # initial value of y is 2
>>> y, x = x, y # assign y value to x and x value to y
```
**预期输出**:
```py
>>> print(x) # final value of x is 2
2
>>> print(y) # final value of y is 1
1
```
试一试:
```py
x = 1 # initial value of x is 1
y = 2 # initial value of y is 2
y, x = x, y # assign y value to x and x value to y
print(x) # final value of x is 2
print(y) # final value of y is 1
```
## Python 数据类型
* * *
Python 即有 5 种标准数据类型。
1. 数字
2. 字符串
3. 列表
4. 元组
5. 字典
6. 布尔值 - 在 Python 中,`True`和`False`是布尔字面值。 但是以下值也被认为是`False`。
* `0` - `0`,`0.0`
* `[]` - 空列表,`()`-空元组,`{}`-空字典,`''`
* `None`
## 从控制台接收输入
* * *
`input()`函数用于从控制台接收输入。
**语法**: `input([prompt]) -> string`
`input()`函数接受一个名为`prompt`的可选字符串参数,并返回一个字符串。
```py
>>> name = input("Enter your name: ")
>>> Enter your name: tim
>>> name
'tim'
```
试一试:
```py
name = input("Enter your name: ")
print(name)
```
请注意,即使输入了数字,`input()`函数也始终返回字符串。 要将其转换为整数,可以使用`int()`或 [`eval()`](/python-builtin-functions/eval/)函数。
```py
>>> age = int(input("Enter your age: "))
Enter your age: 22
>>> age
22
>>> type(age)
<class 'int'>
```
试一试:
```py
age = int(input("Enter your age: "))
print(age)
print(type(age))
```
## 导入模块
* * *
Python 使用模块组织代码。 Python 随附了许多内置模块,可用于例如数学相关函数的`math`模块,正则表达式的`re`模块,与操作系统相关的函数的`os`模块等。
要使用模块,我们首先使用`import`语句将其导入。 其语法如下:
```py
import module_name
```
我们还可以使用以下语法导入多个模块:
```py
import module_name_1, module_name_2
```
这是一个例子
```py
>>> import math, os
>>>
>>> math.pi
3.141592653589793
>>>
>>> math.e
2.718281828459045
>>>
>>>
>>> os.getcwd() # print current working directory
>>> '/home/user'
>>>
```
试一试:
```py
import math, os
print(math.pi)
print(math.e)
print(os.getcwd())
```
在此清单中,第一行导入了`math`和`os`模块中定义的所有函数,类,变量和常量。 要访问模块中定义的对象,我们首先编写模块名称,后跟点(`.`),然后编写对象本身的名称。 (即类或函数或常量或变量)。 在上面的示例中,我们从`math`数学访问两个常见的数学常数`pi`和`e`。 在下一行中,我们将调用`os`模块的`getcwd()`函数,该函数将打印当前工作目录。
在下一章中,我们将介绍 Python 中的[数字](/python-numbers/)。
* * *
* * *
- 初级 Python
- python 入门
- 安装 Python3
- 运行 python 程序
- 数据类型和变量
- Python 数字
- Python 字符串
- Python 列表
- Python 字典
- Python 元组
- 数据类型转换
- Python 控制语句
- Python 函数
- Python 循环
- Python 数学函数
- Python 生成随机数
- Python 文件处理
- Python 对象和类
- Python 运算符重载
- Python 继承与多态
- Python 异常处理
- Python 模块
- 高级 Python
- Python *args和**kwargs
- Python 生成器
- Python 正则表达式
- 使用 PIP 在 python 中安装包
- Python virtualenv指南
- Python 递归函数
- __name__ == "__main__"是什么?
- Python Lambda 函数
- Python 字符串格式化
- Python 内置函数和方法
- Python abs()函数
- Python bin()函数
- Python id()函数
- Python map()函数
- Python zip()函数
- Python filter()函数
- Python reduce()函数
- Python sorted()函数
- Python enumerate()函数
- Python reversed()函数
- Python range()函数
- Python sum()函数
- Python max()函数
- Python min()函数
- Python eval()函数
- Python len()函数
- Python ord()函数
- Python chr()函数
- Python any()函数
- Python all()函数
- Python globals()函数
- Python locals()函数
- 数据库访问
- 安装 Python MySQLdb
- 连接到数据库
- MySQLdb 获取结果
- 插入行
- 处理错误
- 使用fetchone()和fetchmany()获取记录
- 常见做法
- Python:如何读取和写入文件
- Python:如何读取和写入 CSV 文件
- 用 Python 读写 JSON
- 用 Python 转储对象