跟老齐学Python之赋值,简单也不简单
变量命名 在《初识永远强大的函数》一文中,有一节专门讨论“取名字的学问”,就是有关变量名称的问题,本温故而知新的原则,这里要复习: 名称格式:(下划线或者字母)+(任意数目的字母,数字或下划线) 注意: 复制代码 代码如下: and assert break class continue def del elif else except exec finally for from global if import in is lambda not or pass print raise return try while yield 需要都记住吗?当然不需要了。一方面,可以在网上随手查到,另外,还能这样: 复制代码 代码如下: >>> not = 3
File "<stdin>",line 1 not = 3 ^ SyntaxError: invalid syntax >>> pass = "hello,world" 在交互模式的实验室中,用保留字做变量,就报错了。当然,这时候就要换名字了。 以上原则,是基本原则。在实际编程中,大家通常还这样做,以便让程序更具有可读性: 赋值语句 对于赋值语句,看官已经不陌生了。任何一个变量,在python中,只要想用它,就要首先赋值。 语句格式:变量名称 = 对象 上一节中也分析了赋值的本质。 还有一种赋值方式,叫做隐式赋值,通过import、from、del、class、for、函数参数。等模块导入,函数和类的定义,for循环变量以及函数参数都是隐式赋值运算。这方面的东西后面会徐徐道来。 复制代码 代码如下: >>> name = "qiwsir" >>> name,website = "qiwsir","qiwsir.github.io" #多个变量,按照顺序依次赋值 >>> name,website = "qiwsir" #有几个变量,就对应几个对象,不能少,也不能多 如果这样赋值,也得两边数目一致: 复制代码 代码如下: >>> one,two,three,four = "good" >>> one 'g' >>> two 'o' >>> three 'o' >>> four 'd' 这就相当于把good分拆为一个一个的字母,然后对应着赋值给左边的变量。 复制代码 代码如下: >>> [name,site] = ["qiwsir","qiwsir.github.io"] >>> name 'qiwsir' >>> site 'qiwsir.github.io' >>> name,site = ("qiwsir","qiwsir.github.io") >>> name 'qiwsir' >>> site 'qiwsir.github.io' 这样也行呀。 其实,赋值的样式不少,核心就是将变量和某对象对应起来。对象,可以用上面的方式,也许是这样的 复制代码 代码如下: >>> site = "qiwsir.github.io" >>> name,main = site.split(".")[0],site.split(".")[1] #还记得str.split(<sep>)这个东东吗?忘记了,google一下吧。 >>> name 'qiwsir' >>> main 'github' 增强赋值 这个东西听名字就是比赋值强的。 在python中,将下列的方式称为增强赋值:
其它类似结构:x&=y x|=y x^=y x%=y x>>=y x<<=y x**=y x//=y 看下面的例子,有一个list,想得到另外一个列表,其中每个数比原来list中的大2。可以用下面方式实现: 复制代码 代码如下: >>> number [1,2,3,4,5] >>> number2 = [] >>> for i in number: ... i = i+2 ... number2.append(i) ... >>> number2 [3,5,6,7] 如果用上面的增强赋值,i = i+2可以写成 i +=2,试一试吧: 复制代码 代码如下: >>> number [1,5] >>> number2 = [] >>> for i in number: ... i +=2 ... number2.append(i) ... >>> number2 [3,7] 这就是增强赋值。为什么用增强赋值?因为i +=2,比i = i+2计算更快,后者右边还要拷贝一个i。 上面的例子还能修改,别忘记了list解析的强大功能呀。 复制代码 代码如下: >>> [i+2 for i in number] [3,7] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |