可以任意转载
但转载时必须标明原作者charlee、原始链接http://tech.idv2.com/2008/11/03/python-memo/以及本声明
基本概念
=list1 style="PADDING-LEFT: 16px; MARGIN-LEFT: 16px">
Python居然支持复数如(-5+4j)但要注意虚数单位单独使用时要写成 1j不能写成 j
和Perl和PHP区别:单引号和双引号没有任何区别没有插值功能
3引号:''' 和 """ 相当于Perlheredoc
行尾不需要用分号分号仅用于行写多条语句情况跟BASIC冒号有些相似
缩进是有语义!建议使用TAB缩进
运算符和表达式
=list1 style="PADDING-LEFT: 16px; MARGIN-LEFT: 16px">
运算符 ** 乘幂Perl也有
串 * 表示重复相当于Perl x 运算符
居然还有专用于整除 // 别跟Perl 6 // 混淆了
控制流
=list1 style="PADDING-LEFT: 16px; MARGIN-LEFT: 16px">
-el-Perl为-els-bash为-el-fi
、el等控制流语句后面要加冒号很像PHP语法
while和for循环可以带循环正常结束时就会执行不用像C语言那样循环结束时要检查循环变量是否等于终值以判断是否正常结束赞
range生成结果不包括终点比较:Perl .. 运算符包括终点所以Pythonrange(a,b)理解成C语言 for(i=a;i<b,i) 好些
什么都不做pass语句算是个python特色
=list1 style="PADDING-LEFT: 16px; MARGIN-LEFT: 16px">
中使用全局变量需要用global关键字类似于PHP
DocString又个python特色第个逻辑航串作为文档串类似于POD和javadoc不过是写在体内还能通过"名.__doc__"访问
lambda:类似于perl闭包
数据结构
=list1 style="PADDING-LEFT: 16px; MARGIN-LEFT: 16px">
列表:定义方式为 a=[1,2]等价于perl/列表
元组(tuple):定义方式为 a=(1,2)
要注意列表中列表不会被打散如 a=[1,2], b=[a,3,4]结果就是 b=[[1,2],3,4]这点和Perl区别
字典:定义方式为 c={'a':1, 'b':2}等价于perl散列注意两点:
=list2 style="PADDING-LEFT: 16px; MARGIN-LEFT: 16px">
定义和访问时key必须用引号引起来
使用{}定义使用访问即c['a']和Perl区别
列表赋值是引用赋值要想拷贝必须用切片:b = a[:]Perl员要注意
列表sort会改变原列表
例外
=list1 style="PADDING-LEFT: 16px; MARGIN-LEFT: 16px">
try-except-finally相当于javatry-catch-finally
还有当没有发生异常、正常结束try块时执行跟for/while块样
故意抛出异常叫raisejava里面叫throw
面向对象
=list1 style="PADDING-LEFT: 16px; MARGIN-LEFT: 16px">
类__init__类似于C构造;__del__类似于C析构
类思路方法定义第个参数必须为self时这个参数会被传递为对象本身类似于perlperl中第个参数也会被传递为对象本身不过需要员自己写 my $self = sht; 来接收
用C话来说所有成员都是虚
基类思路方法时要手工传递self如 Parnet.__init__(self, name)
模块
=list1 style="PADDING-LEFT: 16px; MARGIN-LEFT: 16px">
import foo; 相当于perl use foo;
from foo import bar 相当于perl use foo qw/bar/;