介绍
变量是一个重要的编程概念掌握。它们本质上是代表在程序中使用的值的符号。 本教程将介绍一些变量基础知识,以及如何在创建的Python 3程序中最好地使用它们。
了解变量
在技术术语中,变量将存储位置分配给绑定到符号名称或标识符的值。变量名用于在计算机程序中引用该存储值。 你可以把一个变量看作一个有名字的标签,你绑定到一个值:
比方说,我们有一个整数,
103204934813
,我们希望把它一遍又一遍存储在一个变量,而不是不断地重新键入一长串数字。 相反,我们使用的东西,很容易记住,如变量
my_int
:
my_int = 103204934813
如果我们认为它像一个绑定的值的标签,它将看起来像这样:
该标签具有变量名称
my_int
写在上面,并绑在整数值
103204934813
。 这句话
my_int = 103204934813
是一个
赋值语句 ,它由几部分组成:
- 变量名(
my_int
)
- 赋值运算符 ,也称为等号(
=
)
- 正在被拴在变量名中的值(
103204934813
)
总之,这三部分组成,设置变量的声明
my_int
等于整数值
103204934813
。 只要我们设置一个变量等于一个值,我们
初始化或创建变量。一旦我们这样做,我们设置使用变量而不是值。在Python中,变量在使用之前不需要显式声明,像一些编程语言;您可以立即开始使用该变量。 只要我们设置
my_int
等于价值
103204934813
,我们可以使用
my_int
在整数的地方,所以我们把它打印出来:
print(my_int)
Output103204934813
使用变量,我们可以快速轻松地做数学。随着
my_int = 1040
,让我们减去整数值813:
print(my_int - 813)
Output103204934000
在这个例子中,Python做数学对我们来说,从可变减去813
my_int
返回总和
103204934000
。 说到数学,变量可以设置为等于数学方程的结果。让我们添加两个数相加并存储的总和入变量的值
x
:
x = 76 + 145
上面的例子可能看起来像你已经熟悉的东西:代数。在代数中,字母和其他符号用于表示公式和方程式中的数字和数量,就像变量是表示数据类型的值的符号名称一样。对于正确的Python语法,你需要确保你的变量在任何方程的左边。 让我们继续和打印
x
:
print(x)
Output221
蟒返回的值
221
,因为变量
x
被设定为等于的总和
76
和
145
。 变量可以表示任何数据类型,而不仅仅是整数:
my_string = 'Hello, World!'
my_flt = 45.06
my_bool = 5 > 9 #A Boolean value will return either True or False
my_list = ['item_1', 'item_2', 'item_3', 'item_4']
my_tuple = ('one', 'two', 'three')
my_dict = {'letter': 'g', 'number': 'seven', 'symbol': '&'}
如果打印任何上述变量,Python将返回该变量等效的内容。例如,让我们使用上面列表数据类型的赋值语句:
my_list = ['item_1', 'item_2', 'item_3', 'item_4']
print(my_list)
Output['item_1', 'item_2', 'item_3', 'item_4']
我们通过列表值
['item_1', 'item_2', 'item_3', 'item_4']
给变量
my_list
,然后使用
print()
函数调用打印出的价值
my_list
。 变量通过在计算机中雕刻出一小块内存区域来工作,它接受与该空间相关联的指定值。
命名变量:规则和样式
变量的命名是非常灵活的,但是你需要记住一些规则:
- 变量名称只能是一个字(如没有空格)
- 变量名必须由字母,数字,以及下划线(
_
)
- 变量名不能以数字开头
遵循上面的规则,让我们看看有效和无效的变量名称:
有效 |
无效 |
为什么无效 |
my_int |
我的int |
不允许使用连字符 |
int4 |
4int |
不能以数字开头 |
MY_INT |
$MY_INT |
不能使用比其他符号_ |
another_int |
另一个int |
不能超过一个字 |
别的变量命名的时候,要记住的是,他们是大小写敏感的,这意味着
my_int
,
MY_INT
,
My_Int
和
mY_iNt
都是完全不同的变量。您应该避免在程序中使用类似的变量名,以确保您和您的当前和未来的协作者可以保持您的变量直。 最后,一些关于风格的笔记。常规地,当命名变量时,通常以小写字母开始并且在分隔单词时使用下划线。以大写字母开头不是无效的,有些人在编写变量时可能喜欢camelCase或混合的大写和小写字母,但这些不是常规的选择。
传统风格 |
非常规风格 |
为什么非常规 |
my_int |
myInt |
骆驼不常规 |
int4 |
Int4 |
大写第一个字母不常用 |
my_first_string |
myFirstString |
骆驼不常规 |
你可以做的最重要的风格选择是一致的。如果您开始使用已经使用camelCase作为其变量名的现有项目,则最好继续使用现有样式。
PEP 8是官方Python代码风格指南,它解决了许多你可能对Python的文体问题。一般来说,可读性和一致性比其他文体关注更受欢迎。
重新分配变量
作为字
变量所暗示的,Python的变量可以容易地改变。这意味着您可以通过简单的重新分配,非常容易地将不同的值与先前分配的变量连接。 能够重新分配是有用的,因为在整个程序过程中,您可能需要在已经初始化的变量中接受用户生成的值,或者可能必须将分配更改为先前定义的值。 知道你可以容易地轻松地重新分配一个变量也可以在你可能正在处理一个由其他人开始的大型程序,并且你还不清楚已经定义的内容的情况下有用。 让我们把
x
首先作为一个整数,然后重新分配它作为一个字符串:
#Assign x to be an integer
x = 76
print(x)
#Reassign x to be a string
x = "Sammy"
print(x)
Output76
Sammy
上面的例子表明,我们可以先指定变量
x
和一个整数的值赋给它,然后重新分配变量
x
这个时候字符串的值赋给它。 如果我们重写这个程序:
x = 76
x = "Sammy"
print(x)
我们只会收到第二个分配的值作为输出,因为这是最近的分配:
OutputSammy
重新分配变量在某些情况下可能很有用,但是您需要知道代码的可读性,并努力使您的程序尽可能清晰。
多重分配
使用Python,您可以同时为单个值分配给多个变量。这允许您一次初始化几个变量,您可以稍后在程序中重新分配这些变量,或通过用户输入。 通过多次分配,您可以设置变量
x
,
y
,和
z
的整数值
0
:
x = y = z = 0
print(x)
print(y)
print(z)
Output0
0
0
在这个例子中,所有三个变量(的
x
,
y
,和
z
)被分配到相同的存储器位置。它们各自等于值0。 Python还允许您为同一行中的多个变量分配多个值。每个值都可以是不同的数据类型:
j, k, l = "shark", 2.05, 15
print(j)
print(k)
print(l)
Outputshark
2.05
15
在上面的例子中,变量
j
被分配到串
"shark"
,变量
k
被分配到浮子
2.05
,可变
l
被分配到的整数
15
。 这种将多个变量分配到一行中的多个值的方法可以保持代码行不变,但确保您不会为更少的代码行降低可读性。
全局和局部变量
当一个程序中使用的变量,它保持
变量的作用域一点是非常重要的。变量的范围指的是在给定程序的代码中可访问的特定位置。这就是说,不是所有的变量都可以从给定程序的所有部分访问 - 一些变量将是全局的,一些变量将是本地的。
全局变量的函数之外。功能中存在
的局部变量 。 让我们来看看全局变量和局部变量:
#Create a global variable, outside of a function
glb_var = "global"
#Define a function
def var_function():
lcl_var = "local" #Create a local variable, inside function
print(lcl_var)
#Call function to print local variable
var_function()
#Print global variable outside function
print(glb_var)
Outputlocal
global
以上程序分配全局变量
glb_var
任何功能之外,则定义函数
var_function()
内的函数的调用的本地变量
lcl_var
被分配,然后打印出来。 该程序通过调用结束
var_function()
然后打印
glb_var
。 由于
glb_var
是一个全局变量,我们可以参考它
var_function()
让我们修改上面的小程序来做:
glb_var = "global"
def var_function():
lcl_var = "local"
print(lcl_var)
print(glb_var) #Print glb_var within function
var_function()
print(glb_var)
Outputlocal
global
global
我们现在有全局变量
glb_var
打印出来两次,因为它是两个由函数和函数的外面印刷。 如果我们尝试调用函数外部的局部变量怎么办?
glb_var = "global"
def var_function():
lcl_var = "local"
print(lcl_var)
print(lcl_var)
OutputNameError: name 'lcl_var' is not defined
我们不能用它在分配函数的外部局部变量。如果我们试图这样做,我们会收到一个
NameError
的回报。 让我们看另一个例子,其中我们使用相同的变量名称作为全局变量和局部变量:
num1 = 5 #Global variable
def my_function():
num1 = 10 #Use the same variable name num1
num2 = 7 #Assign local variable
print(num1) #Print local variable num1
print(num2) #Print local variable num2
#Call my_function()
my_function()
#Print global variable num1
print(num1)
Output10
7
5
因为局部变量
num1
在函数内部局部分配,当我们调用该函数,我们看到
num1
为等于本地值
10
。 当我们打印出的全球价值
num1
打完电话后
my_function()
我们可以看到,全局变量
num1
仍然等于价值
5
。 这可以通过使用Python的指定功能中的全局变量
global
语句:
def new_shark():
global shark = "Sammy" #Assign variable as global
#Print global variable shark
print(shark)
即使变量
shark
是在局部范围内分配
new_shark()
函数,这是因为功能的外部访问
global
变量的函数内赋值之前使用的语句。 由于是
global
的语句,当我们调用
print(shark)
的功能之外,我们没有收到一个错误。 虽然你
可以在一个函数中分配一个全局变量,你可能并不需要经常这样做,并在可读的代码方应犯错。 要记住的是,如果你引用一个函数中的一个变量,而不指定一个值,该变量是隐式全局的。为了有一个局部变量,你必须在函数体内为它赋一个值。 当使用变量时,决定使用全局变量还是局部变量更为合适是很重要的。通常最好将变量保存为局部变量,但是当您在多个函数中使用相同的变量时,可能需要初始化一个全局变量。如果你只使用一个函数或一个类中的变量,你可能想使用一个局部变量。
结论
本教程通过一些的Python中的变量常见的用例3.变量是规划的一个重要组成部分了,作为该站在一个价值符号的
数据类型,您正在使用的程序。