变量与赋值

  • 变量与赋值

高中学代数的时候我们就接触过各种各样的变量,变量指的是一个抽象的,用来储存值,或者说储存数据的东西。例如我们常说令商品的单价是x,销量是y,x大于0的时候,它俩大致满足y=k/x(k>0)的关系。那x啊y啊k啊都是变量,我们可以赋予它们任意的值。在Python中,变量不仅可以指数字,也可以指向任意Python支持的数据类型(整数、浮点数、布尔值balabala)。举个非常简单的例子:

>>> x = 1
>>> x + 1
2

在这个例子中,我们把整数1这个值赋予了变量x,这个过程称为赋值,使用赋值号“=”。字母x,是这个变量的名字,称为变量名。只要你开心,你也可以把这个变量叫做haha:

>>> haha = 1
>>> haha + 1
2

我们可以在Python中创建任意的变量,赋予它任意的值。赋值的时候请注意,变量必须写在赋值号的左边,要赋的值写在右边。反过来是不行的,试试输入1=haha会怎样。

 

我们看下面的例子:

>>> haha = 1
>>> haha
1
>>> haha = haha + 1
>>> haha
2

前面我们提到过,在Python中要分清等号’==’和赋值号‘=’。如果从数学角度上讲,haha=haha+1是永远不成立的;而在Python中,系统会先计算赋值号右边的结果,然后赋值给赋值号左边的变量。因此我们看到,haha被重新赋予了整数2这个值,不再指向原先的整数1。

 

成功给变量赋值以后,我们就可以用这个变量的名字来调用其相关的操作方法了。例如,我将一个列表赋值给变量lst,然后直接用lst这个变量名进行列表的相关操作:

>>> lst=[1, 2, 3, 4]
>>> lst[1]
2
>>> lst * 2
[1, 2, 3, 4, 1, 2, 3, 4]
>>> len(lst)
4
>>> min(lst)
1

那么使用变量有什么好处呢?

一来是假如你有一个好长好长的列表,每输入一次都不能呼吸,那在实际写程序的时候,我们只要把这个列表写一次,赋值给一个变量,以后要用这个列表,调用这个变量即可。

二来一个优秀的程序中的变量名都是有意义的,可以让别的人读到变量的名字,就大致知道这个变量指的是什么东西。我们在选用变量名的时候,也要遵从这样的原则,力求程序“简明”。例如我想建立一个变量来储存数字相加的和,那么我把它命名为sum就比叫做haha简明。

 

  • 变量名命名规则

Python的变量名称,只能含有大写或小写的26个英文字母,下划线”_”,和数字0-9;且变量名不可以以数字开头。

例如你再开心,这也是不允许的:

>>> 233haha = 1
SyntaxError: invalid syntax

习惯上,Python的变量不会以大写字母开头,也不会全是大写字母,大写字母一般用来表示常量(例如圆周率π,用PI来表示)。虽然怎么取变量名是你的自由,但是好的变量名还是要遵从:简洁有意义这个原则。对于需要多个单词才能表达的名称,可以用下划线连接:my_num,或者用骆驼拼写法(camelCase):myNum。在同一个程序中,二者选其一不要混用。

另外,有一些名称是Python的内部命令,我们也不能用它们作为变量名,

Falsebreakelseifnotwhile
Noneclassexceptimportorwith
Truecontinuefinallyinpassyield
anddefforisraise
asdelfromlambdareturn
assertelifglobalnonlocaltry

不用背诵…你随便挑一个赋值试试会怎样


这一节中讲到的变量名命名规则,实际上只适用于Python3之前的版本。Python3之前的版本都采用ASCII编码(关于编码后面的章节会详细讲),也就是说他们只能识别26个英文字母。然鹅从Python3开始,编码换成了Unicode,这样一来实际上Python3已经可以识别很多其他语言的字符(中文、阿拉伯语等等)。也就是说:

>>> 哈哈 = 123
>>> 哈哈 + 1
124

也是可以运行的!
但是,当今绝大多数的程序、编程语言规范上依旧要求变量名只能是ASCII编码的英文字母组成。为了符合国际大流,本教程所有的变量名依然严格遵守这一节中提到的命名规则。

 

  • 本节练习

将整数666赋值给变量a,并用布尔表达式检验变量a是否等于整数666

看答案

>>> a = 666
>>> a == 666
True

酱哦

找到字符串’I love Python. Python makes me happy. Everyday I wake up and I start to learn Python. Python is soooo great!’中索引号为41,5,23,2,-36和45的字符,并按这个顺序将它们组合成一个新字符串。

看答案

>>> s='I love Python. Python makes me happy. Everyday I wake up and I start to learn Python. Python is soooo great!'
>>> s[41] + s[5] + s[23] + s[2] + s[-36] + s[45]
'really'

酱哦

 

如果还有什么问题或者发现了文章的错误,欢迎给我留言!邮箱可以随便乱写~

发表评论

电子邮件地址不会被公开。 必填项已用*标注