Python基础(1)--Python编程习惯与特点

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

1.代码风格

在Python中,每行程序以换行符代表结束,如果一行程序太长的话,可以用“\”符号扩展到下一行。在python中以三引号(""")括起来的字符串,列表,元组和字典都能跨行使用。并且以小括号(...)、中括号[...]和大括号{...}包围的代码不用加“\”符也可扩展到多行。

在Python中是以缩进来区分程序功能块的,缩进的长度不受限制,但就一个功能块来讲,最好保持一致的缩进量。

如果一行中有多条语句,语句间要以分号(;)分隔。

以“#”号开头的内容为注释,python解释器会忽略该行内容。

在python中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。python中的标识符是区分大小写的。

以下划线开头的标识符是有特殊意义的。以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用“from xxx import *”而导入;以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的(__foo__)代表python里特殊方法专用的标识,如__init__()代表类的构造函数。

在交互模式下运行python时,一个下划线字符(_)是特殊标识符,它保留了表达式的最后一个计算结果。

>>>"hello"'hello'>>>_'hello'>>> 10+10

20

>>>_20

在python中,函数、类、模块定义的第一段代码如果是字符串的话,就把它叫作文件字串,可通过__doc__属性访问。如:

deftest():"this is a document string"return100+1000

>>>PRinttest.__doc__thisisa document string

2.保留字

andelifglobalor yield

assertelseifpass

breakexceptimportprint

classexecinraise

continuefinallyisreturn

defforlambdatry

delfromnotwhile

使用下面的代码可以打印python的关键字:

>>>fromkeyWordimportkwlist>>>printkwlist

输出如下:

['and', 'as', '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', 'with', 'yield']

3.Python运算符和表达式Python运算符列表

运算符描述x+y,x-y

加、减,“+”号可重载为连接符

x*y,x**y,x/y,x%y

相乘、求平方、相除、求余,“*”号可重载为重复,“%”号可重载为格式化

<,<=,>,>=,==,<>,!=

比较运算符

+=,-=,*=,/=,%=,**=,<<=,>>=,&=,^=,|=

自变运算符

x|y

按位或

x^y

按位异或

x&y

按位与

~x

按位取反

x<<,x>>y

x向左或向右移y位

is, is not

等同测试

in, not in

是否为成员测试

or,and,not

逻辑运算符

x[i],x[i:j],x.y,x(...)

索引,分片,限定引用,函数调用

(...),[...],{...},'...'

元组,列表,字典,转化为字符串

运算符优先顺序列表(从最高到最低)

运算符描述'expr'

字符串转换

{key:expr,...}

字典

[expr1,expr2...]

列表

(expr1,expr2,...)

元组

function(expr,...)

函数调用

x[index:index]

切片

x[index]

下标索引取值

x.attribute

属性引用

~x

按位取反

+x,-x

正,负

x**y

幂

x*y,x/y,x%y

乘,除,取模

x+y,x-y

加,减

x<<y,x>>y

移位

x&y

按位与

x^y

按位异或

x|y

按位或

x<y,x<=y,x==y,x!=y,x>=y,x>y

比较

x is y,x is not y

等同测试

x in y,x not in y

成员判断

not x

逻辑否

x and y

逻辑与

x or y

逻辑或

lambda arg,...:expr

Lambda匿名函数

真值表

对象/常量值""

假

"string"

真

0

假

>=1

真

<=-1

真

()空元组

假

[]空列表

假

{}空字典

假

None

假

复合表达式

对于and,当计算a and b时,python会计算a,如果a为假,则取a值,如果a为真,则python会计算b且整个表达式会取b值。如:

>>> a,b=10,20

>>> aandb#a is true20

>>> a,b=0,5#a is false>>> aandb

0

对于or,当计算a or b时,python会计算a,如果a为真,则整个表达式取a值,如果a为假,表达式将取b值。如:

>>> a,b=10,20

>>> aorb10

>>> a,b=0,5

>>> aorb5

对于not,not将反转表表达式的“实际值”,如果表达式为真,not为返回假,如为表达式为假,not为返回真。如:

>>>not2False>>>not0

True>>>not"test"False>>>not""True

4.给变量赋值

变量赋值:赋值并不是直接将一个值赋给一个变量,在Python中,对象是通过引用传递的。Python的赋值语句不会返回值,类似下面的语句是非法的:

>>> x=1

>>> y=(x=x+1)SyntaxError: invalid syntax

链式赋值没有问题:

>>> x=1

>>> y=x=x+1

>>>x,y

(2, 2)

Python不支持类似x++或--x这样的前置/后置自增/自减运算

可以多重复值:

>>> x=y=z=1

>>>x1

>>>y1

>>>z1

可以多元赋值:

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

>>>y2

>>>z'a string'

通常使用小括号括起来,增强代码的可读性:

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

>>>y2

>>>z'a string'

使用Python的多元赋值方式可以实现无中间变量交换两变量的值:

>>>#swapping variables in Python>>> x,y=1,2

>>>x1

>>>y2

>>> x,y=y,x>>>x2

>>>y1

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航