Python is free and easy to learn if you know where to start!
注意事项
- python目前有两个主要的大版本: python2.x python3.x, 变化比较大, 注意所看资料是针对哪个版本的.
- 注意不要再同一个脚本中混合使用tab和空格进行缩进.
- 推荐在终端中使用ipython
- 关于python代码风格规范, 请参考pep8
- 如果脚本中包换非英文字符, 请再#!/python下一行添加"# coding: utf-8"
数据类型
变量的可变与不可变.
python中基本的数据类型包括:
- number(int, float)
- string
- tuple
- list
- dict
- boolean
其中: number, string, tuple 属于不可变类型, 其余属于可变类型.
改变一个数字的值, 实际上是创建了一个新的对象.
In [1]: a = 1
In [3]: id(a)
Out[3]: 140405345671768
In [4]: a = a + 1
In [5]: id(a)
Out[5]: 140405345671744
注意, 这里变量 a 的id变了. string 也是不可变类型, 改变一个字符串的值也会, 也会创建一个新对象. 所以在python应该尽量避免对字符串使用 '+' 的操作, 防止程序执行效率下降.
如果是一个list
In [6]: b = [1]
In [7]: id(b)
Out[7]: 4322169992
In [8]: b.append(1)
In [9]: b
Out[9]: [1, 1]
In [10]: id(b)
Out[10]: 4322169992
我们看到id没有发生变化.
一切皆是对象
In [12]: dir("hello")
Out[12]:
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__',
...
...
'capitalize', 'index', .......]
这里我们看到, "hello" 并不是一个简单的, 犹如在 C 里那样的字符串, 与他关联的还有一大堆的方法.
什么是对象? 对象实际上就是 一堆数据与一堆方法的集合.
这里要强调一点, python并非一门纯的面向对象的语言, 其中还包括了很多过程式的, 函数式的编程元素.
常用方法
string
'count',
'encode', 'decode',
'startswith', 'endswith',
'find', 'rfind',
'index', 'rindex',
'join',
'upper', 'lower', 'swapcase',
'lstrip', 'rstrip', 'strip',
'replace',
'split', 'rsplit', 'splitlines',
list
'insert',
'append',
'extend',
'count',
'index',
'pop',
'remove',
'reverse', 'sort'
dict
'get',
'setdefault',
'has_key',
'items', 'iteritems', 'iterkeys', 'itervalues',
'keys',
'values',
'pop', 'popitem',
控制结构
if
- true: True, "x", 1, [1], {"a": 1}
- false: False, "", 0, [], {}
operator: and, or, not
for
python中, 没有类似C中
for( i=1; i<=100; i++ )
式的语句
语法:
for {$var} in [...]:
...
常用函数
range(), xrange().
常用命令
continue, break
函数
语法:
def function_name(arg1[=...], arg2, ...):
pass
重要概念:
- 参数默认值
- 参数unpacking, f(*args, **kv)
- 匿名函数, lambda
- doc string
- 函数副作用
- 装饰器
类
语法:
Class Class_name():
def __init__():
pass
def other_function():
pass
重要概念:
- self
- 类变量与实例变量, 类方法(静态函数)与实例方法
- 类的实例化
- 继承
- 父类方法调用
包
重要概念:
- python path
- import
- _init_.py
测试
作为一个程序员,学会如何测试自己的代码是必备的技能,而python 在这方面提供了非常完善的基础设施。
Unittest
Mock
python3.4 加入标准库 unittest.mock,之前的版本需要另外安装。
文档
通过Sphnix可以根据代码中的 docstring 生成文档。支持多种输出格式,例如:html,pdf等。
其他
virtualenv 可以帮助开发者创建一个独立的python 环境,方便后续的代码打包(包括依赖包)和发布。
网友评论