您的位置:首页 > 编程语言 > Python开发

python初识1

2013-05-11 10:40 141 查看

换行

Python 语句,一般使用换行分隔,也就是说一行一个语句。一行过长的语句可以使用反斜杠( \ ) 分解成几行。

有两种例外情况一个语句不使用反斜线也可以跨行。在使用闭合操作符时,单一语句可以跨多行,例如:在含有小括号、中括号、花括号时可以多行书写。另外就是三引号包括下的字符串也可以跨行书写。

如果要在使用反斜线换行和使用括号元素换行作一个选择,我们推荐使用括号,这样可读性会更好。

缩进

核心风格:缩进四个空格宽度,避免使用制表符对一个初次使用空白字符作为代码块分界的人来说,遇到的第一个问题是:缩进多大宽度才合适?两个太少,六到八个又太多,因此我们推荐使用四个空格宽度。需要说明一点,不同的文本编辑器中制表符代表的空白宽度不一,如果你的代码要跨平台应用,或者会被不同的编辑器读写,建议你不要使用制表符。使用空格或制表符这两种风格都得到了Python 创始人Guidovan
Rossum 的支持,并被收录到Python 代码风格指南文档。

变量赋值

注意,赋值并不是直接将一个值赋给一个变量, 尽管你可能根据其它语言编程经验认为应该如此。在Python 语言中,对象是通过引用传递的。在赋值时,不管这个对象是新创建的,还是一个已经存在的,都是将该对象的引用(并不是值)赋值给变量。你比较熟悉C, 你会知道赋值语句其实是被当成一个表达式(可以返回值)。

不过这条并不适合于 Python, Python 的赋值语句不会返回值。类似下面的语句在Python 中是非法的:

>>> x = 1

>>> y = (x = x + 1) # assignments not expressions! File "<stdin>", line 1

y = (x = x + 1)

^

SyntaxError: invalid syntax

链式赋值没问题:

>>> y = x = x + 1

>>> x, y

增量赋值

增量赋值相对普通赋值不仅仅是写法上的改变,最有意义的变化是第一个对象(我们例子中的A)仅被处理一次。可变对象会被就地修改(无修拷贝引用), 不可变对象则和 A = A +B 的结果一样(分配一个新对象),我们前面提到过,有一个例外就是 A 仅被求值一次。

多重赋值

>>> x = y = z = 1

>>> x

1

>>> y

1

>>> z

1

在上面的例子中,一个值为1 的整数对象被创建,该对象的同一个引用被赋值给 x、y 和z 。也就是将一个对象赋给了多个变量。当然,在Python 当中,将多个对象赋给多个变量也是可以的。

多元”赋值

另一种将多个变量同时赋值的方法我们称为多元赋值(multuple)。这不是官方Python 术语, 而是我们将 "mul-tuple"连在一起自造的。因为采用这种方式赋值时, 等号两边的对象都是元组(我们在2.8 节讲过元组是一种Python 基本数据类型)。

>>> x, y, z = 1, 2, 'a string'

>>> x

1

>>> y

2

>>> z

'a string'

在上面的例子里, 两个整数对象(值分别为1 和2)及一个字符串对象, 被分别赋值给x, y 和z。通常元组需要用圆括号(小括号)括起来,尽管它们是可选的。我们建议总是加上圆括号以使得你的代码有更高的可读性。

>>> (x, y, z) = (1, 2, 'a string')

在其它类似C 的语言中, 如果你要交换两个值, 你会想到使用一个临时变量比如tmp 来临时保存其中一个值:

/* C 语言中两个变量交换 */

tmp = x;

x = y;

y = tmp;

在上面的C 代码片段中,变量x 和变量y 的值被互相交换。 临时变量tmp 用于在将y 赋值给x 前先保存x 的值。将y 的值赋给x 后, 才可以将保存在tmp 变量中的x 的值赋给y。Python 的多元赋值方式可以实现无需中间变量交换两个变量的值。

# swapping variables in Python

>>> x, y = 1, 2

>>> x

1

>>> y

2

>>> x, y = y, x

>>> x

2

>>> y

1

显然, Python 在赋值之前已经事先对x 和y 的新值做了计算。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: