geekdoc-python-zh/docs/pythonland/07.md

154 lines
7.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 字符串的所有知识。