这里从C语言开发者的角度快速介绍Python的面向过程编程。
1> 基本数据类型
整数、长整数、浮点数、复数。
前面3种和C差不多,复数估计是科学计算用,什么场景使用目前还不清楚。(难道用来做傅里叶变换?等研究python如何取代Matlab再说)
注意点: 两个整数做除法结果是浮点数。
C语言没有的运算符:
** 2**3 = 2的3次方 = 8
// 取整数部分, 2//3 = 0, -2//3 = -1, 2//-3 = -1 (负数有点搞,搞不清楚就多测试下)
重要技巧:
dir(__builtins__) 显示所有内置函数
help(函数名) 显示函数帮助信息
注意:python不需要申明变量,也不需要指定变量类型,就当一个指向内存的引用指针就可以了。
2> 复杂类型
2.1 字符串: ‘ ‘‘ ‘‘‘ 3个符号是等价的(这点和Perl不同)
\ 转义, 与C语言一致。
建议都使用‘’‘来定义字符串
操作:
+ 字符串连接 (注意,python并不提供字符串和整数的相加,比如 “123” + 4 返回错误 TypeError,必须用户自己做转换比如 “123” + str(4) = ‘1234‘)
* 重复字符串 (‘a‘ * 3 = ‘aaa‘)
== 字符串是否相等
!= 是否不相等
< > >= <= 比较函数
in 是否存在该字符串 注意(’‘空串 存在于任何其他字符串 ‘‘ in ‘a‘ -> True
len 长度
[m:n] 切片,需要注意,对应于数学上的 [m, n) 而不应是 [m,n] 比如 s = "01234" s[1,2] = ‘1‘ 而不是‘12‘ 这点必须搞清楚
其他函数可以参考
dir(str)
2.2 List
List相当于Perl的数组,用[]来定义。
注意,由于Python并没有类型区分,所以数组里每一项并不要求是同一类型。
比如下面定义也是可以的。
myComplexList = [ 122,12.5, "123", [1, 2, 3, 3, 3, 3]]
把每一项想做一个引用指针就很好理解了。
访问: myComplexList [3][1] 返回2
常用函数:
in
len
max
min
sum
更多函数请参考
dir(list)
从数据结构角度来说,list既可以当Stack用,也可以当Queue用。非常方便。
2.3 tuple: 不可变list
具体函数参考
dir(tuple)
2.4 dict
类似于perl的hash,大家的最爱。
mydict = { ’key1‘: value1, ‘key2‘: value2, key3: value3,...}
具体函数参考
dir(dict)
3 控制流程
3.1 Boolean True 或者False
and C语言的 &&
or C语言的 ||
not C语言的 !
关于什么是True还是False可能需要自己做深入测试。
按照直觉感觉下面情况应该是False
int 0
float 0.0
str ’‘
list []
tuple []
dict {}
具体使用前建议测试下。搞明白Boolean是面向过程编程最重要的事情,否则下面的if / for/ while 全乱了。
3.2 if
if 条件 :
elif 条件 :
else :
主要: python 不使用{}来控制子程序块,而是采用缩进。
每个条件后面需要加一个 :
elif 和else 可选,可以有也可以都没。
3.2 while
while 条件 :
...
else :
...
注意: else 是可选语句 坦率地说,目前还没搞明白怎么用,难道是实现大名鼎鼎的goto语句部分功能?
建议不用。多一事不如少一事。
3.3 for
for 变量 in range(...) :
...
range的格式如下:
start, stop, step 其中start和step是可选参数。比如range(10) 等价于range(0, 10, 1)
4 函数
python里面定义函数需要做5部分的事情
第一步: 设计测试用例
第二步: 写函数说明书
第三步: 想好函数名称和变量名称
第四步:写函数实现
第五步:测试
比如简单的add函数
def myadd(leftValue, rightValue):
‘‘‘ (int ,int ) -> int
该函数实现两个整数的相加。输入参数必须为整数。
>>> myadd(3, 5)
8
‘‘‘
return leftValue + rightValue
到这里,大部分C语言能做的事情,python就能做了。
5 工具下载:
Python: http://www.python.org/downloads/
pycharm: http://www.jetbrains.com/pycharm/download/
pythonwin: http://sourceforge.net/projects/pywin32/files/
Let’s Go!!!