154 lines
7.0 KiB
Markdown
154 lines
7.0 KiB
Markdown
# Python 变量:存储信息以备后用
|
||
|
||
> 原文:[https://python.land/introduction-to-python/variable](https://python.land/introduction-to-python/variable)
|
||
|
||
在上一节中,我们通过利用[REPL](https://python.land/introduction-to-python/the-repl)将 Python 用作计算器。存储这些计算的结果不是很好吗?为此,我们使用 Python 变量。在本文中,您将学习什么是变量以及如何声明变量。我们还将了解创建变量的规则和最佳实践。
|
||
|
||
目录
|
||
|
||
|
||
|
||
* [什么是 Python 变量?](#What_is_a_Python_variable "What is a Python variable?")
|
||
* [声明一个 Python 变量](#Declaring_a_Python_variable "Declaring a Python variable")
|
||
* [变量命名](#Variable_naming "Variable naming")
|
||
* [在表达式中使用变量](#Using_variables_in_expressions "Using variables in expressions")
|
||
* [变量类型](#Variable_type "Variable type")
|
||
* [有效的 Python 变量名](#Valid_Python_variable_names "Valid Python variable names")
|
||
* [继续学习](#Keep_learning "Keep learning")
|
||
|
||
|
||
|
||
## 什么是 Python 变量?
|
||
|
||
让我们从更正式地定义什么是变量开始:
|
||
|
||
Variable
|
||
|
||
A variable is used to store information that can be referenced later on.
|
||
|
||
所以变量就是我们用来命名结果的东西,比如说,我们做的一个计算。或者,换句话说,我们可以将计算结果赋给一个变量。我们可以创造无限量的变量;我们只需要确保给它们起一个唯一的名字。
|
||
|
||
## 声明一个 Python 变量
|
||
|
||
我们将在 REPL 中创建一个名为`result`的 Python 变量(正式名称为声明变量)。但是在我们这样做之前,我们将尝试看看 Python 是否已经知道结果是什么:
|
||
|
||
```py
|
||
>>> result
|
||
Traceback (most recent call last):
|
||
File "<stdin>", line 1, in <module>
|
||
NameError: name 'result' is not defined
|
||
```
|
||
|
||
这是 Python 让您了解错误的方式。忽略前两行,关注实际的错误。Python 报道:`name 'result' is not defined`。如果你知道去哪里找,Python 错误往往会很有帮助。所以我想给你看一个。最终,您将需要自己编写代码,不幸的是,出错是这项工作的一大部分。能够破译错误将是一个有用的技能!
|
||
|
||
现在让我们声明变量名`result`并再次尝试:
|
||
|
||
```py
|
||
>>> result = 3 * 5
|
||
>>> result
|
||
15
|
||
```
|
||
|
||
这是逐步发生的事情:
|
||
|
||
* Python 看到一个所谓的赋值:我们把 3 * 5 的结果赋给一个叫做`result`的变量。赋值是用“=”字符完成的,这个字符方便地称为“is”。所以我们只是告诉 Python:我声明`result`是表达式 3 * 5 的结果。
|
||
* 接下来,我们输入`result`。
|
||
* Python 并不认为这是一个命令,所以它尝试看看是否有一个同名的变量。有,我们给它分配了 15 分。因此,这一行的结果是数字 15,显示在屏幕上。
|
||
|
||
## 变量命名
|
||
|
||
在本例中,我们选择了通用名称`result`,但是您可以选择任何您认为合适的名称。作为一般规则,总是选择一个最能描述其内容的变量名。这种做法使您的代码可读性更强,更容易理解。例如,如果我们在这里计算购物车的总价,一个好的名字应该是`shopping_cart_total`。
|
||
|
||
不要吝啬变量名中的字符数。最好使用像`shopping_cart_total`这样清晰易读的名字,而不是像`sct`这样的缩写。您很快就会了解到,一个好的代码编辑器会自动完成诸如变量名之类的事情,所以您不必完全键入它们,如果这是您所担心的。
|
||
|
||
## 在表达式中使用变量
|
||
|
||
Python 变量是该语言的重要组成部分,因为您也可以在其他表达式中使用它们:
|
||
|
||
```py
|
||
>>> 4 * result
|
||
60
|
||
>>> result - result
|
||
0
|
||
>>> _
|
||
```
|
||
|
||
我在没有解释表达式是什么的情况下使用了表达式这个词,让我们来修正一下:
|
||
|
||
**Expression**
|
||
|
||
An expression is anything that Python can evaluate to a value
|
||
|
||
这些都是有效的表达式,因为 Python 可以对它们求值:
|
||
|
||
```py
|
||
# Evaluates to 9:
|
||
3 * 3
|
||
|
||
# Evaluates to 19 if the result is 15:
|
||
result + 4
|
||
|
||
# Simply evaluates to 2:
|
||
2
|
||
```
|
||
|
||
你在表情上面看到的,叫做注释。任何跟在散列符号(#)后面的东西都被视为一个 [Python 注释](https://python.land/introduction-to-python/python-comment),并被 Python 解释器忽略。
|
||
|
||
## 变量类型
|
||
|
||
顺便说一下,赋给变量的值不一定是数字。Python 除了数字还有几个[数据类型](https://python.land/python-data-types),它们都可以是表达式的结果(值)。一种这样的数据类型是 [Python 字符串](https://python.land/introduction-to-python/strings),这也是本教程下一篇文章的主题!但是也有其他的,像[布尔](https://python.land/introduction-to-python/python-boolean-and-operators)和[元组](https://python.land/python-data-types/python-tuple)。
|
||
|
||
Python 有一个名为`type()`的内置[函数](https://python.land/introduction-to-python/functions),我们可以用它来确定变量或表达式类型。以下是一些例子:
|
||
|
||
```py
|
||
>>> my_number = 4
|
||
>>> type(my_number)
|
||
<class 'int'>
|
||
>>> my_string = 'Hello'
|
||
>>> type(my_string)
|
||
<class 'str'>
|
||
```
|
||
|
||
首先,我们创建了一个值为 4 的变量。当被问到时,Python 告诉我们这个变量属于 int 类,这是整数的缩写。如果你愿意的话,可以通过链接获得关于整数的更全面的解释。
|
||
|
||
接下来,我们创建一个字符串。当被问到时,Python 确实告诉我们它属于 str 类,string 的缩写。差不多是时候学习更多关于 [Python 字符串](https://python.land/introduction-to-python/strings)的知识了,但是我想先讨论最后一个话题。
|
||
|
||
## 有效的 Python 变量名
|
||
|
||
变量名中不允许使用某些字符;我们需要遵守几条规则。让我们从可以出现在变量名中的有效字符的完整列表开始:
|
||
|
||
* 小写和大写字母:a-z 和 A-Z
|
||
* 数字:0-9
|
||
* 下划线:_
|
||
|
||
此外,还有以下两条规则:
|
||
|
||
* 变量名必须**以字母或下划线字符**开头,不能以数字开头。
|
||
* 名称区分大小写
|
||
|
||
下面是一些*有效的变量名*:
|
||
|
||
* name_1,
|
||
* 姓名 _2,
|
||
* _ 数据库 _ 连接
|
||
|
||
这些是*无效名称*:
|
||
|
||
* 1 托曼尼(不要以数字开头)
|
||
* 我的号码(-不允许)
|
||
* 我的号码(不允许有空格)
|
||
|
||
由于区分大小写,这些变量*不同于*:
|
||
|
||
* 购物车总计
|
||
* 购物车总计
|
||
|
||
### 关于骆驼案的一个注记
|
||
|
||
这是为那些来自另一种编程语言的人准备的,比如 C#或 Java。许多编程语言利用 camel-case 来命名变量。使用 camel-case,我们使用大写字母来更清楚地分隔单词。
|
||
|
||
在 Python 中,我们可以使用 camel-case,但是我们更喜欢使用下划线作为变量名,而 camel-case 是[类名](https://python.land/objects-and-classes)的标准。所以我们 Pythonistas 不用`shoppingCartTotal`,而是用`shopping_cart_total`。然而,我们确实对[类名](https://python.land/objects-and-classes)使用了 camel-case,您很快就会了解到。
|
||
|
||
## 继续学习
|
||
|
||
我们见过数字,我们知道如何在变量中存储数字。但是文字呢?进入下一部分,学习关于 Python 字符串的所有知识。 |