# Python 变量，常量和字面值

> 原文： [https://www.programiz.com/python-programming/variables-constants-literals](https://www.programiz.com/python-programming/variables-constants-literals)

#### 在本教程中，您将学习 Python 变量，常量，字面值及其使用案例。

## Python 变量

变量是用于在内存中存储数据的命名位置。 将变量视为保存数据的容器是有帮助的，该数据可以在程序中稍后进行更改。 例如，

```py
number = 10 
```

在这里，我们创建了一个名为`number`的变量。 我们为变量分配了 10 值。

您可以将变量视为用于存储书籍的袋子，并且可以随时替换该书籍。

```py
number = 10
number = 1.1 
```

最初，`number`的值为 10 。 之后，将其更改为 1.1 。

**注意**：在 Python 中，我们实际上并未为变量分配值。 相反，Python 将对象（值）的引用提供给变量。

* * *

## 在 Python 中为变量赋值

从上面的示例中可以看到，可以使用赋值运算符`=`将值赋给变量。

### 示例 1：声明和赋值给变量

```py
website = "apple.com"
print(website) 
```

**输出**

```py
apple.com 
```

在上述程序中，我们为变量`website`分配了一个`apple.com`值。 然后，我们打印出分配给`website`的值，即`apple.com`

**注意**：Python 是[类型推断的](https://en.wikipedia.org/wiki/Type_inference)语言，因此您不必显式定义变量类型。 它自动知道`apple.com`是一个字符串，并声明`website`变量为字符串。

* * *

### 示例 2：更改变量的值

```py
website = "apple.com"
print(website)

# assigning a new variable to website
website = "programiz.com"

print(website) 
```

**输出**：

```py
apple.com
programiz.com 
```

在上述程序中，我们最初已将`apple.com`分配给`website`变量。 然后，将该值更改为`programiz.com`。

* * *

### 示例 3：将多个值分配给多个变量

```py
a, b, c = 5, 3.2, "Hello"

print (a)
print (b)
print (c) 
```

如果我们想一次将相同的值分配给多个变量，我们可以这样做：

```py
x = y = z = "same"

print (x)
print (y)
print (z) 
```

第二个程序将相同的字符串分配给所有三个变量`x`，`y`和`z`。

* * *

## 常数

常量是一种变量，其值无法更改。 将常量视为保存了以后无法更改的信息的容器是有帮助的。

您可以将常量视为一个用于存储一些书籍的袋子，这些书籍一旦放入袋子中就无法替换。

* * *

## 在 Python 中为常量赋值

在 Python 中，常量通常在模块中声明和分配。 在这里，模块是一个包含变量，函数等的新文件，该文件将导入到主文件中。 在模块内部，用所有大写字母写的常量和下划线将单词分开。

### 示例 3：声明值并将其赋给常量

创建一个`constant.py`：

```py
PI = 3.14
GRAVITY = 9.8 
```

创建一个`main.py`：

```py
import constant

print(constant.PI)
print(constant.GRAVITY) 
```

**输出**：

```py
3.14
9.8 
```

在上面的程序中，我们创建一个`constant.py`模块文件。 然后，将常量值分配给`PI`和`GRAVITY`。 之后，我们创建一个`main.py`文件并导入`constant`模块。 最后，我们打印常数值。

**注意**：实际上，我们在 Python 中不使用常量。 用大写字母命名它们是将它们与变量分开的约定，但是，实际上并不能阻止重新分配。

* * *

## 变量和常量的规则和命名约定

1.  常数和变量名称应由小写字母（a 至 z）或大写字母（**A 至 Z**）或数字（**0 至 9**）或下划线（`_`）。 例如：

    ```py
    snake_case
    MACRO_CASE
    camelCase
    CapWords
    ```

2.  创建一个有意义的名称。 例如，`vowel`比`v`更有意义。
3.  如果要创建具有两个单词的变量名，请使用下划线将它们分开。 例如：

    ```py
    my_name
    current_salary
    ```

4.  尽可能使用大写字母声明一个常数。 例如：

    ```py
    PI
    G
    MASS
    SPEED_OF_LIGHT
    TEMP
    ```

5.  切勿使用`!, @, #, $, %`等特殊符号。
6.  不要用数字开头的变量名。

* * *

## 字面值

字面值是以变量或常量给出的原始数据。 在 Python 中，有以下几种类型的字面值：

## 数字字面值

数字字面值是不可变的（不可更改）。 数值字面值可以属于 3 种不同的数值类型：`Integer`，`Float`和`Complex`。

### 示例 4：如何在 Python 中使用数字字面值？

```py
a = 0b1010 #Binary Literals
b = 100 #Decimal Literal 
c = 0o310 #Octal Literal
d = 0x12c #Hexadecimal Literal

#Float Literal
float_1 = 10.5 
float_2 = 1.5e2

#Complex Literal 
x = 3.14j

print(a, b, c, d)
print(float_1, float_2)
print(x, x.imag, x.real) 
```

**输出**：

```py
10 100 200 300
10.5 150.0
3.14j 3.14 0.0 
```

在上面的程序中

*   我们将整数字面值分配给不同的变量。 在此，`a`是二进制字面值，`b`是十进制字面值，`c`是八进制字面值，`d`是十六进制字面值。
*   当我们打印变量时，所有字面值都将转换为十进制值。
*   10.5 和`1.5e2`是浮点字面值。`1.5e2`用指数表示，并且等效于`1.5 * 10 ^ 2`。
*   我们为变量`x`分配了一个复数字面值，即`3.14j`。 然后，我们使用**虚数**字面值（`x.imag`）和**实数**字面值（`x.real`）来创建复数的虚部和实部。

要了解有关数字字面值的更多信息，请参阅 [Python Numbers](https://www.programiz.com/python-programming/numbers) 。

* * *

## 字符串字面值

字符串字面值是由引号括起来的一系列字符。 我们可以为字符串使用单引号，双引号或三引号。 并且，字符字面值是由单引号或双引号引起来的单个字符。

### 示例 7：如何在 Python 中使用字符串字面值？

```py
strings = "This is Python"
char = "C"
multiline_str = """This is a multiline string with more than one line code."""
unicode = u"\u00dcnic\u00f6de"
raw_str = r"raw \n string"

print(strings)
print(char)
print(multiline_str)
print(unicode)
print(raw_str) 
```

**输出**：

```py
This is Python
C
This is a multiline string with more than one line code.
Ünicöde
raw \n string 
```

在上述程序中，这是 Python 是字符串字面值， C 是字符字面值。

分配给`multiline_str`的三引号`"""`中的值是多行字符串字面值。

字符串`u"\u00dcnic\u00f6de"` 是 Unicode 字面值，支持英语以外的字符。 在这种情况下，`\u00dc`代表`Ü`，`\u00f6`代表`ö`。

`r"raw \n string"`是原始字符串字面值。

* * *

## 布尔字面值

布尔字面值可以具有两个值中的任何一个：`True`或`False`。

### 示例 8：如何在 Python 中使用布尔字面值？

```py
x = (1 == True)
y = (1 == False)
a = True + 4
b = False + 10

print("x is", x)
print("y is", y)
print("a:", a)
print("b:", b) 
```

**输出**：

```py
x is True
y is False
a: 5
b: 10 
```

在上面的程序中，我们使用布尔字面值`True`和`False`。 在 Python 中，`True`表示为 1 ，`False`表示为 0 。`x`的值为`True`，因为 1 等于`True`。 并且，因为 1 不等于`False`，所以`y`的值为`False`。

同样，我们可以在数字表达式中使用`True`和`False`作为值。`a`的值为 5 ，因为我们将 1 的`True`与 4 相加。 同样，`b`为 10 ，因为我们将 0 的值`False`与 10 相加。

* * *

## 特殊字面值

Python 包含一个特殊字面值，即`None`。 我们使用它来指定尚未创建的字段。

### 示例 9：如何在 Python 中使用特殊字面值？

```py
drink = "Available"
food = None

def menu(x):
    if x == drink:
        print(drink)
    else:
        print(food)

menu(drink)
menu(food) 
```

**输出**：

```py
Available
None 
```

在上面的程序中，我们定义了`menu`函数。 在`menu`内部，当我们将参数设置为`drink`时，它将显示`Available`。 并且，当参数为`food`时，它显示`None`。

* * *

## 集字面值

有四种不同的字面值集合：列表字面值，元组字面值，字典字面值和集合字面值。

### 示例 10：如何在 Python 中使用字面值集合？

```py
fruits = ["apple", "mango", "orange"] #list
numbers = (1, 2, 3) #tuple
alphabets = {'a':'apple', 'b':'ball', 'c':'cat'} #dictionary
vowels = {'a', 'e', 'i' , 'o', 'u'} #set

print(fruits)
print(numbers)
print(alphabets)
print(vowels) 
```

**输出**：

```py
['apple', 'mango', 'orange']
(1, 2, 3)
{'a': 'apple', 'b': 'ball', 'c': 'cat'}
{'e', 'a', 'o', 'i', 'u'} 
```

在上面的程序中，我们创建了`fruits`列表，`numbers`的元组，字典`dict`的列表，这些字典的值带有为每个值指定的键`vowels`。

要了解有关字面值集合的更多信息，请参考 [Python 数据类型](https://www.programiz.com/python-programming/variables-datatypes)。