Python入门2(赋值)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python入门2(赋值)相关的知识,希望对你有一定的参考价值。
【一:*,-1的作用】
给大家两个例子:
1 a,b,c,d=‘spam‘ 2 print(a) 3 print(b) 4 print(c) 5 print(d) 6 a,*b=‘spam‘ 7 print(a) 8 print(b)
上面这个例子是*号作用的最就简单的例子,要区别于C语言中的指针。第六行语句,a赋的是s,b赋的是pam
1 seq=‘computer‘ 2 *a,b=seq 3 print(a) 4 print(b) 5 c,d=seq[:-1],seq[-1] 6 print(a) 7 print(b)
上面是-1作用的例子,大家可以自己体会
注意:如果有多个带星号的名称,或者如果值少了而没有带星号的名称,以及如果带星号的名称自身没有编写到一个列表中,都将会引发错误
【二:序列赋值】
1 a=1 2 b=2 3 a,b=b,a 4 print(a) 5 print(b)
在这里,右侧的原组会自动记住先前的变量值
【三:for循环】
1 L=[1,2,3,4] 2 M=[1,2,3,4] 3 while L: 4 front,L=L[0],L[1:] 5 print(front,L) 6 7 while M: 8 front,*M=M 9 print(front,M)
由例子可以看出,上下两段代码的结果是一样的,这就是*的作用
1 for all in [(1,2,3,4),(5,6,7,8)]: 2 a,b,c=all[0],all[1:3],all[3] 3 print(a,b,c)
【四:append】
1 a=b=[] 2 b.append(42) 3 print(a,b) 4 5 a=[] 6 b=[] 7 b.append(42) 8 print(a,b)
第一段代码,因为a和b引用相同的对象,通过b在原处附加值上去,而我们通过a也会看到相同的效果。第二段代码则有不同的效果。只有append有这个功能
【五:强赋值语句】
强赋值语句类似与C语言中的x+=x,y+=y,但要注意的是Python中没有x++这样的运算符
1 s=‘spam‘ 2 s+=‘SPAM‘ 3 print(s)
当强赋值语句用于字符串时,增强形式会改为执行合并运算
强赋值语句的优点:
1、左侧只需计算一次,在x+=x中,x可以是复杂的对象表达式。在增强形式中,则只需计算一次。然而,在完整形式x=x+y中,x出现两次,必须执行两次。因此,增强赋值语句通常执行更快。
2.当我们使用增强赋值语句时,Python会自动调用较快的方法
1 a=[1,2,3] 2 b=[1,2,3] 3 a.extend([4,5]) 4 b=b+[4,5] 5 print(a) 6 print(b)
在上面这个例子中,上下两段代码的结果是一样的,但是.extend方法更快一点。然后我们再来看下面这个例子
1 a=[1,2,3] 2 a+=[4,5] 3 print(a)
这个例子调用的就是更快速的.extend方法,虽然表面上看不出,但Python内部就是调用更高效的方法的
注意:
1 L=[1,2] 2 M=L 3 L=L+[3,4] 4 print(M,L) 5 6 L=[1,2] 7 M=L 8 L+=[3,4] 9 print(M,L)
以上两个例子的差异大家自己体会一下
+=能对列表做原处修改
1 M=L=[1,2] 2 L.append(3) 3 print(M,L) 4 5 M=L=[1,2] 6 L=L+[3] 7 print(M,L)
再次感受一下append的作用
以上是关于Python入门2(赋值)的主要内容,如果未能解决你的问题,请参考以下文章
python入门:求1-2+3-4+5...99的所有数的和
python入门:求1-2+3-4+5...99的所有数的和(自写)