148.md 3.3 KB
Newer Older
W
wizardforcel 已提交
1
# Python – 变量
W
wizardforcel 已提交
2 3 4 5 6 7 8

> 原文: [https://howtodoinjava.com/python/python-variables/](https://howtodoinjava.com/python/python-variables/)

[python](https://howtodoinjava.com/python-tutorial/) 中了解变量,以声明局部变量和全局变量。 另外,了解 python 函数内部使用的全局关键字。

## 1.创建变量

W
wizardforcel 已提交
9
#### 1.1 简单赋值
W
wizardforcel 已提交
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

Python 语言没有**没有关键字来声明变量**。 当我们首先为变量赋值时,会立即在适当位置创建一个变量。

```java
i = 20
blogName = "howtodoinjava"

print(i)			# prints 20
print(blogName)		# prints howtodoinjava

```

可以使用单引号和双引号来创建字符串类型的变量。

```java
author = 'Lokesh'
blogName = "howtodoinjava"

print(author)	# prints Lokesh
print(blogName)	# prints howtodoinjava

```

W
wizardforcel 已提交
33
#### 1.2 链式赋值
W
wizardforcel 已提交
34

W
wizardforcel 已提交
35
Python 还允许使用链式赋值,这使得可以将相同的值同时赋值给多个变量。
W
wizardforcel 已提交
36 37 38 39 40 41 42 43 44 45

```java
i = j = k = 20

print(i)			# prints 20
print(j)			# prints 20
print(k)			# prints 20

```

W
wizardforcel 已提交
46
#### 1.3 单行中的多个赋值
W
wizardforcel 已提交
47

W
wizardforcel 已提交
48
Python 允许您在一行中将值赋值给多个变量。
W
wizardforcel 已提交
49 50 51 52 53 54 55 56 57 58

```java
x, y, z = "A", "B", 100

print(x)	# prints A
print(y)	# prints B
print(z)	# prints 100

```

W
wizardforcel 已提交
59
#### 1.2 变量重新声明
W
wizardforcel 已提交
60

W
wizardforcel 已提交
61
由于变量不需要数据类型信息,因此我们可以毫无问题地重新赋值任何类型的新值。 在 Python 中,可以为变量赋值一种类型的值,然后在以后重新赋值其他类型的值。
W
wizardforcel 已提交
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80

```java
index = 10
index = 20
index = "NA"

print(index)	# prints NA

```

## 2.命名约定

在 Python 中创建变量的规则是:

*   变量名必须**以字母或下划线字符**开头。
*   变量名**不能以数字**开头。
*   变量名**只能包含字母数字字符和下划线** `(A-z, 0-9, and _ )`
*   变量**名称区分大小写**。 例如,名称,名称和名称是三个不同的变量。

W
wizardforcel 已提交
81
> **注意:** Python3 具有完全的 Unicode 支持,它也允许在变量名中使用 Unicode 字符。
W
wizardforcel 已提交
82 83 84

## 3.局部变量与全局变量

W
wizardforcel 已提交
85
#### 3.1 创建局部变量和全局变量
W
wizardforcel 已提交
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103

在函数内部创建的变量称为**局部变量**

在函数外部创建的变量是**全局变量**。 全局变量可以被函数内部和外部的每个人使用。

```java
x = 10		# global variable

def myfunc():
  y = 10	# local variable
  print("Sum of x and y = " + str(x + y))	# prints Sum of x and y = 20

myfunc()

print("Sum of x and y = " + str(x + y))		# NameError: name 'y' is not defined

```

W
wizardforcel 已提交
104
#### 3.2 局部变量限制在函数范围内
W
wizardforcel 已提交
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120

如果在函数内部创建具有相同名称的变量,则该变量将是局部变量,并且只能在函数内部使用。 具有相同名称的全局变量将保留原样,并具有原始值。

```java
x = 10		# global variable

def myfunc():
  x = 20	# local variable
  print("x is " + str(x))		# prints x is 20

myfunc()

print("x is " + str(x))			# prints x is 10

```

W
wizardforcel 已提交
121
#### 3.3 `global`关键字
W
wizardforcel 已提交
122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141

要在函数内部创建全局变量,我们可以使用`global`关键字。

```java
x = 10		# global variable

def myfunc():
  global y 
  y = 10	# global variable created inside function
  print("Sum of x and y = " + str(x + y))	# prints Sum of x and y = 20

myfunc()

print("Sum of x and y = " + str(x + y))		# prints Sum of x and y = 20

```

将您与 python 变量有关的问题交给我。

学习愉快!