美文网首页
Python 基础

Python 基础

作者: whyreal | 来源:发表于2014-08-26 21:23 被阅读287次

    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

    unittest

    Mock

    python3.4 加入标准库 unittest.mock,之前的版本需要另外安装。

    文档

    通过Sphnix可以根据代码中的 docstring 生成文档。支持多种输出格式,例如:html,pdf等。

    其他

    virtualenv 可以帮助开发者创建一个独立的python 环境,方便后续的代码打包(包括依赖包)和发布。

    相关文章

      网友评论

          本文标题:Python 基础

          本文链接:https://www.haomeiwen.com/subject/ykustttx.html