zoukankan      html  css  js  c++  java
  • 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. 

  • 相关阅读:
    vscode snippet
    OpenGL Type
    [转] fio参数详解
    [转] openchannel SSD( OCSSD)
    [转]linux内存管理
    proc/meminfo && hugepage
    [转] 从free到 page cache
    [转]linux网络协议栈(1)——链路层
    [转]linux 网络协议栈(1)——网络设备
    [转]linux网络协议栈(1)——socket buffer
  • 原文地址:https://www.cnblogs.com/xingyun/p/4251519.html
Copyright © 2011-2022 走看看