Fork me on GitHub

python总结

Python基础教程 学习总结

1. 导入模块

  • “模块.函数”(优先使用)
  • import math
    math.sqrt(9)
  •  在确定不会导入多个同名函数时,可以使用 “from 模块 import 函数” 方式
    from math import sqrt
    sqrt(9)
  • 还可以使用变量来引用函数
  • foo=math.sqrt
    foo(9)   

 

2. 字符串表示 str repr

  • str() 输出对用户比较友好
  • >>> print str(10000L)
    10000
  • repr() 输出对python解释器比较友好,该函数得到的字符串通常可以用来重新获得该对象,即 obj == eval(repr(obj))
  • >>> print repr(10000L)
    10000L

3. 列表可以修改,元组不能修改。一般来说,在几乎所有情况下列表都可以替代元组(例外情况是使用元组作为字典的键,因为键不能修改)。

4. 列表 extend()与连接操作

  • extend() 修改了被扩展的序列。
  • >>> a=[1,2,3]
    >>> b=[4,5,6]
    >>> a.extend(b)
    >>> a
    [1,2,3,4,5,6]
  • 连接+操作则返回一个全新的列表,不修改原列表。
  • >>> a=[1,2,3]
    >>> b=[4,5,6]
    >>> a+b
    >>> [1,2,3,4,5,6]
    >>> a
    [1,2,3] 

5. 列表排序 sort() 和 sorted()

  • sort() 用于在原位置对列表进行排序。
  • >>> x=[4,6,5]
    >>> x.sort()
    >>> x
    [4,5,6] 
    >>> y=x.sort()
    >>> print y
    None
  • sorted() 不是原地操作
  • >>> x=[4,6,5]
    >>> y=sorted(x)
    >>> x
    [4,6,5]
    >>> y
    [4,5,6]

     

 6. 元组表示

  一个元组的值必须加个逗号

  • >>> 42
    42
    >>> (42)
    42
    >>> 42,
    (42,) 

 7. 格式化字符串,使用%实现

  • >>> "%s plus %s equals %s"  % (1,2,3)
    5
    >>> phone = {'Tom':'9980'}
    >>> 'his number is %(Tom)' % phone

8. 字符串常用方法

  • find(), 查找子串
  • split(), 切割字符串
  • join(), 是split()的逆方法
  • >>> '+'.join(['1','2','3'])
    1+2+3
  • replace(), 替换所有匹配的字符串
  • translate(), 与replace()类似,只是translate()只处理单个字符,并可以同时进行多个替换。
  • >>> from string import maketrans
    >>> table = maketrans('ts','kz')
    >>> 'this is a test'.translate(table)
    'khiz iz a kezk'
  • strip(), 去除两侧指定的字符(默认为空格)

 9. 字典方法

  • clear(), 清空字典, 原地操作
  • copy(), 浅复制 ; deepcopy(), 深复制
  • get(), 访问一个不存在的键时不会报异常,返回None
  • >>> d={}
    >>> print d['name']
    Traceback (most recent call last):
        File "<stdin>", line1, in ?
    KeyError: 'name'
    >>> print d.get('name')
    >>> None
  • items(), 返回键值对的列表形式; iteritems(), 返回键值对的迭代器对象, 使用更高效
  • keys(), 返回键的列表形式; iterkeys(), 返回键的迭代器对象

10. 序列解包 (将多个值的序列解开,放到变量的序列中)

  • 多个赋值同时进行以及交换
  • >>> x,y,z = 1,2,3
    >>> print x,y,z
    1,2,3 
    >>> x,y =y,x
    >>> print x,y,z
    2,1,3
    >>> value = 1,2,3
    >>> value
    (1,2,3)
    >>> x,y,z = value
    >>> x
    1
    >>> a,b,*rest = [1,2,3,4]
    >>> rest
    [3,4]

11. x==y 相等性(值相等); x is y 同一性(同一个对象)

  0<age<100 运算符可以连用

  三元运算符 :a if b else c (不用引入临时变量)

12. 迭代工具

  • zip 并行迭代

   zip可以应付不等长的序列,当最短的序列用完后就会停止

  • >>> name = ['a','b','c']
    >>> age = [2,3]
    >>> zip(name , age)
    [('a',2),('b',3)]
  • enumerate(), 迭代序列中的对象同时获取当前对象的索引
  • for index,string in enumerate(strings):
        if 'xxx' in string:
           strings[index] = 'find'
  • reversed() 非原地翻转 ; reverse() 原地翻转

13. 循环相关

  • while True/break 习语
  • 循环中的else子句

   当循环内使用break时,通常是因为找到了某物或某事发生了,但有时候想要在没有跳出前做些事情。

   故在循环中没有调用到break时会执行else子句。

  • for n in range(100):
        ...
        if xxx:
              ...
               break
    else:  #与for循环对齐
         ...  

14. 列表推倒式

  • >>> [x*x for x in range(10) if x %3 ==0]
    [0,9,36,81]
    >>> [(x,y) for x in range(1) for y in range(2)] #最外层使用圆括号不会得到"元组推导式"
    [(0,0),(0,1)]

15. 使用del删除

  • >>> x=[2]
    >>> y = x
    >>> del x
    >>> y
    [2]

     删除x后,y并不会被删除。del删除的只是名称,而不是列表本身。python中是没有办法删除值的,也不需要考虑。当某个值不再使用时,Python解释器会负责内存的回收。

16. exec(),动态执行一个字符串的语句

  • >>> exec "print 'hello,world' "
    hello,world 

   eval(),计算以字符串形式书写的python表达式

  • >>> eval("8+9")
    17 

 

17. 命令空间(todo)

18. 

 

posted @ 2015-01-26 22:16  落崖惊风  阅读(299)  评论(0编辑  收藏  举报