如何在Python 3使用变量

本教程将介绍一些变量基础知识以及如何创建了Python 3程序中最好地使用它们。我们将通过命名规则和惯例,重新分配变量,多任务,并使局部和全局变量。

介绍

变量是一个重要的编程概念掌握。它们本质上是代表在程序中使用的值的符号。 本教程将介绍一些变量基础知识,以及如何在创建的Python 3程序中最好地使用它们。

了解变量

在技术术语中,变量将存储位置分配给绑定到符号名称或标识符的值。变量名用于在计算机程序中引用该存储值。 你可以把一个变量看作一个有名字的标签,你绑定到一个值: Python中的变量 比方说,我们有一个整数, 103204934813 ,我们希望把它一遍又一遍存储在一个变量,而不是不断地重新键入一长串数字。 相反,我们使用的东西,很容易记住,如变量my_int
my_int = 103204934813
如果我们认为它像一个绑定的值的标签,它将看起来像这样: Python变量示例 该标签具有变量名称my_int写在上面,并绑在整数值103204934813 。 这句话my_int = 103204934813是一个赋值语句 ,它由几部分组成:
  • 变量名( my_int
  • 赋值运算符 ,也称为等号( =
  • 正在被拴在变量名中的值( 103204934813
总之,这三部分组成,设置变量的声明my_int等于整数值103204934813 。 只要我们设置一个变量等于一个值,我们初始化或创建变量。一旦我们这样做,我们设置使用变量而不是值。在Python中,变量在使用之前不需要显式声明,像一些编程语言;您可以立即开始使用该变量。 只要我们设置my_int等于价值103204934813 ,我们可以使用my_int在整数的地方,所以我们把它打印出来:
print(my_int)
103204934813
使用变量,我们可以快速轻松地做数学。随着my_int = 1040 ,让我们减去整数值813:
print(my_int - 813)
103204934000
在这个例子中,Python做数学对我们来说,从可变减去813 my_int返回总和103204934000 。 说到数学,变量可以设置为等于数学方程的结果。让我们添加两个数相加并存储的总和入变量的值x
x = 76 + 145
上面的例子可能看起来像你已经熟悉的东西:代数。在代数中,字母和其他符号用于表示公式和方程式中的数字和数量,就像变量是表示数据类型的值的符号名称一样。对于正确的Python语法,你需要确保你的变量在任何方程的左边。 让我们继续和打印x
print(x)
221
蟒返回的值221 ,因为变量x被设定为等于的总和76145 。 变量可以表示任何数据类型,而不仅仅是整数:
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)
['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_intMY_INTMy_IntmY_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)
76
Sammy
上面的例子表明,我们可以先指定变量x和一个整数的值赋给它,然后重新分配变量x这个时候字符串的值赋给它。 如果我们重写这个程序:
x = 76
x = "Sammy"
print(x)
我们只会收到第二个分配的值作为输出,因为这是最近的分配:
Sammy
重新分配变量在某些情况下可能很有用,但是您需要知道代码的可读性,并努力使您的程序尽可能清晰。

多重分配

使用Python,您可以同时为单个值分配给多个变量。这允许您一次初始化几个变量,您可以稍后在程序中重新分配这些变量,或通过用户输入。 通过多次分配,您可以设置变量xy ,和z的整数值0
x = y = z = 0
print(x)
print(y)
print(z)
0
0
0
在这个例子中,所有三个变量(的xy ,和z )被分配到相同的存储器位置。它们各自等于值0。 Python还允许您为同一行中的多个变量分配多个值。每个值都可以是不同的数据类型:
j, k, l = "shark", 2.05, 15
print(j)
print(k)
print(l)
shark
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)
local
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)
local
global
global
我们现在有全局变量glb_var打印出来两次,因为它是两个由函数和函数的外面印刷。 如果我们尝试调用函数外部的局部变量怎么办?
glb_var = "global"

def var_function():
    lcl_var = "local"
    print(lcl_var)

print(lcl_var)
NameError: 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)
10
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.变量是规划的一个重要组成部分了,作为该站在一个价值符号的数据类型,您正在使用的程序。