码迷,mamicode.com
首页 > 编程语言 > 详细

Python基本语法(基于3.0)

时间:2014-09-11 20:50:52      阅读:383      评论:0      收藏:0      [点我收藏+]

标签:style   color   io   os   使用   ar   for   文件   sp   

  1. Python的两种运行模式:
    • 命令行模式,运行python,然后在命令行中输入python命令
    • 程序脚本, 在命令行中输入 ./hello.py运行
  2. Python是解释形语言,但可以通过工具打包成二进制可执行文件
  3. 注释符为#,多行注释以‘‘‘开始,以‘‘‘结束
  4. 变量不需要声明类型,可以自动推导,type()函数可以获得变量类型
  5. 序列是一组由顺序的元素的集合,各元素类型可以不同,序列分两种
    • tuple(元组):tuple中的元素不可以变更,用()定义,也可以省略(),字符串是一种特殊元组
    • list:各个元素可以再变更,用[]定义

  6. 一个序列可以作另一个序列的元素,用[]可以访问序列元素,也可以使用范围引用,表达式为[下限:上限:步长]
  7. 函数定义的关键字:def, return可以返回多个值,如return a,b,c,相当于return(a,b,c)
    • 函数参数的传递,可以使用关键字传递参数,这样不用遵守位置的对应关系。定义函数时参数可以指定默认值
    • 包裹参数传递:定义函数时在相应的元组或者字典前加*或者**,如
      • func(*arr):arr是一个tuple,调用时,func(1,2,3,4)
      • func(**dic):dic是一个字典,调用时,func(a=1,b=2,c=3)
    • 解包裹:函数定义时未使用包裹参数,调用时传入包裹参数,函数会自动进行拆解,注意调用时,参数值前要加*或者**,对应tuple和字典
    • 函数也是对象,也可以作为参数传给其他函数
  8. Python也使用class定义类,类的方法第一个参数必须是self,用于引用对象本身,类似于this
  9. 继承的语法: class SubClass(ParentClass), ParentClass是父类,SubClass是子类

  10. __init__()是一个特殊方法,创建对象时python会自动调用这个方法,相当于初始化过程。如:human =new Human("male"); 参数mail会传给__init__()方法
  11. 两个重要的内置函数:
    • dir()用于查询一个类或者对象所有属性
    • help()用于查询说明文档
  12. 词典类型的定义dic={key1:value1,key2,value2},key可以使字符串,数字,bool型等,不可变对象都可以做键,字典的循环如下,注意循环的key值
    for key in dic:
        print(dic[key])

  13. 字典的常用函数: keys(),values(),items(),clear(),还有一个常用用法是del dic[‘Tom‘],删除key为Tom的元素,del是Python中的关键字,不是函数,用于删除对象
  14. 模块(Module):一个.py文件就是一个模块,使用import关键字引入其他模块,使用模块.对象的方式来访问引入模块中的对象
  15. import的一些用法:
    • import a as b :引入模块a,并重命名为b
    • from a import func1: 从模块a中引入func1对象,之后可以直接使用func1,而不用使用a.func1
    • from a import *:从模块a中引入所有对象,这样可以直接使用a中的对象,而不必用a.对象
  16. Python会在以下路径搜索它想要的模块:
    • 程序所在的文件夹
    • 标准库的安装路径
    • 操作系统环境变量PYTHONPATH所包含的路径

  17. 模块包:功能相似的模块放在同一个文件夹(如dir)中,就构成一个模块包,文件夹中必须包含一个__int__.py的文件(可以为空)以通知Python,该文件夹是一个模块包,通过:
    import dir.module引用dir文件夹中的module
  18. 用于循环的函数:
    • range:
    • enumerate():可以在每次循环中同时得到下标和元素,for(index,value) in enumerate(arr)
    • zip():用于循环多个等长序列,每次循环从各个序列中分别取一个元素,for(a,b,c)in zip(arr1,arr2,arr3).zip的作用就是从各个序列中依次取出一个元素,合成一个tuple
  19. 循环对象:包含一个__next__方法,该方法的目的是循环下一个结果,直到最后抛出StopIteration错误
  20. 生成器(Generator):构建一个用户自定义的循环对象,编写方法与函数类似,只是return改为yield,可以有多个yield,generator遇到yield时会暂停运行返回yield后面的值,再次调用生成器的时候,会从暂停的地方继续运行,返回下一个yield值。生成器示例:
    G=(x for x in range(4)),G就是一个生成器,用__next__()方法访问其中的值
  21. 表推导(table comprehension):快速生成表(list)的方法,示例:
    L=(x**2 for x in range(10)),这与生成器表达式类似,只不过用的是中括号
  22. lambda:示例 func=lambda x,y:x+y 调用跟普通函数一样,func(3,5)

  23. 常用函数:
    • map(函数对象,list...):功能是将函数对象依次作用于list的每一个元素,每次作用的结果存储在返回的循环对象中,如果函数对象有多个参数,则后面可以有多个list,map函数每次从所有的list中取出一个值,作为函数的参数
    • filter(函数对象,list...):功能是将函数对象作用于多个元素,如果函数对象返回的是True,则返回该次的元素存储在循环对象中
    • reduce(函数对象,list):函数对象只能接受两个参数,可以累进的从list中每次取两个值作参数。3.x中需要引入functools包
  24. 异常语法如下,自己抛出式样使用raise关键字
     try:
        ... except exception1:
        ... except exception2:
        ... except:
        ... else:
        ... finally:
        ...
    如果没有异常,则执行else语句,如果没有对应的异常类型则会向上层抛出异常


  25. 上下文管理器:用于规定某个对象的使用范围,语法:with ....as...,任何定义了__enter__()和__exit__()方法的对象都可用于上下文管理器
    # with context manager 

    with open("new.txt", "w") as f:  print(f.closed)
         f.write("Hello World!") print(f.closed)
  26. 对象的属性存储在对象的__dict__属性中,以属性名为key,属性值为value
  27. 闭包:Python中的闭包是一个包含有环境变量取值的函数对象,环境变量取值被保存在函数对象的__closure__属性中
  28. 装饰器:对一个函数,方法或者类进行加工,被装饰函数或类前要加@decorator,实际上将square_sum传递给decorator,并将decorator返回的新的可调用对象赋给原来的函数名
    def decorator(F): 
         def new_F(a, b):
             print("input", a, b)
     
            return F(a, b)
         
    return
    new_F
    @decorator def square_sum(a, b):  return a**2 + b**2
  29. 格式化字符串:Python使用一个字符串作模板,模板中有格式符,如print("I am %s,i am %d years old" %(‘Tom‘,10)),模板与tuple之间有一个%号分隔,它代表了格式化操作,可以用如下方式对格式进一步的控制:
    %[(name)][flags][width].[precision]typecode
    print("I‘m %(name)s. I‘m %(age)d year old" % {name:Vamei, age:99})(使用字典传递真实值)
  30. 
    

Python基本语法(基于3.0)

标签:style   color   io   os   使用   ar   for   文件   sp   

原文地址:http://www.cnblogs.com/phenixyu/p/3967197.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!