注释
Phython的注释和C语言非常不同,第一种 #开头的注释,类似于C的//开头,而"""对 包围注释,类似于C的/* */,以及xml类的<!-- -->。#号注释也就算了,"""实在无语,不知道这种另辟蹊径有什么好,徒增学习成本。
函数
Python的函数(类方法)的定义比较奇葩,以def开头,接着函数名,参数列表,冒号,函数体内容需缩进,如下,对于C、Java系统出身的人,没有花括号,真是不习惯啊
def funcname (params) : ...... ...... return ...
函数能返回多个值
在看Python代码时经常发现函数返回多个结果值的情况,翻了资料才知道,其实也是单值返回,只是返回的就是数组而已,唯一的差别在于Python可以定义多个变量接收返回值,这个确实方便
下划线
有的时候看到函数返回值用_接收,或 for _ in range的语句,查了资料,_表示临时性的变量等,我们不关心此变量的值,但语法上又不能缺少,大致如此,不求甚解
[:num]及[num:]写法
其中num是数组索引,如果是负数则从尾巴上数,-1表示最后一个元素,冒号表示分割,冒号在前,表示取索引前的所有元素,冒号在后,表示取索引所在位置及后面的所有元素。
举例:
>>> '123'[2:]
'3'
>>> '123'[:2]
'12'
类成员函数self参数
python类成员函数与普通函数形式一致,但要求第一个参数为self,在C程序员眼里这个真是非常无聊的事情,默认提供一个this关键字不是更好吗
字符串格式
python的字符串格式,使用%操作符,举例说明:
>>> a=1
>>> b=2
>>> '%d:%d' % (a, b)
'1:2'
非常简单,好用!
函数的关键字参数
函数的调用可以根据位置顺序来指定参数即位置参数,也可以根据参数名字来指定参数即关键字参数,使用关键字参数时,参数的位置无关,类似于JSON中的key;如果混合位置参数和关键字参数,那么,位置参数必须在前面,举例:
>>> def myprint(name, age): ... print 'name=%s age=%d' % (name, age) ... >>> >>> myprint('tom', 8) name=tom age=8 >>> myprint(age=8, name='tom') name=tom age=8 >>> myprint('tom', age=8) name=tom age=8
在JavaScript编码中,经常会使用Object来传递参数,好处是参数非常灵活,Python的这种调用方式,在此基础上更跨一步。
函数的属性变量
在Python中一切皆对象,函数也是,所以可以通过函数名.变量名的方式来定义变量,如下:
>>> def billux(): ... print 'hello' ... >>> billux() hello >>> billux.v = 4.5 >>> billux.v 4.5