python速查笔记(1) 类型与函数

来源:互联网 发布:图书管理系统c语言 编辑:程序博客网 时间:2024/04/29 12:27

 

   学习python有些日子了,有些东西和C++、java的确有很大差别,于是将些概要的东西整理出来,便于查询。而不求其详细。
   先从变量和函数说起,逐步整理完善。
  

“一切皆对象”是python的一个原则。任何类型、变量、函数、模块都是对象。
  
一、基本类型
    1.整型(Integer):
    2.浮点型(float):    (1==1.0)是真值
    3.复数(complex):   c=1+5j == c1=complex(1,5)是真值
    4.None类型:  表示出错
    5.逻辑表达式:
        逻辑运算符:(级别低于比较运算符)
            A and B #与。A为假,就返回表达式A的值。A为真,就返回表达式B的值。
            A or B  #或。A、B的表达式都为真,结果是A;
                        #如果是一真一假,返回真值表达式的值;
                        #都是假(空值和0的情况),结果是B(的0或空值)。
            not       #非。not a == b 就是 not (a == b),
        比较运算符:
            x == y  #x等于y
            x != y  #x不等于y
            x > y   #x大于y
            x < y   #x小于y
            x >= y  #x大于等于y
            x <= y  #x小于等于y
        and-or技巧(实现c语言的bool ? a:b)
            >>> a = ""
            >>> b = "second"
            >>> bool = 1
            >>> (bool and [a] or [b])[0]  #注意[]的用意在于保证a的表达式为TRUE,不影响运算结果
           
二、函数
    1.函数定义
      def function_name( ):
            #代码块要缩进
        return ...      #函数没有返回值类型定义,return可返回任意类型,或无返回值
                        #函数可以嵌套函数  
    2.函数的参数传递
        函数参数不需定义类型,若类型不匹配,函数代码可抛异常。
        函数参数是按地址引用传递的。但由于local namespace的原因,好像对简单变量是按值传递的。
       
        缺省值参数(可选参数):
            def SetPosition(name,height=170,weight=70):
            >>>SetPosition("my cup")
        可变数量参数:(想想c语言中的main(int argc, char *argv[]),printf())
           按tuple方式传递多个参数(任意参数):
            def printf(format,*arg): #*arg必须为最后一个参数。
                                     #*表示接受任意个参数,并将其之后的变量生成tuple传递给函数
            >>>printf("hello", "my",2,["dog","pig"])
           按dictionary方式传递多个参数(任意带名字参数):
            def printf(format,**keyword):   #**表示接收任意个key,value式的参数,生成字典传给函数
            >>>printf("dict format", One=1,Two=2,Three=3)
                                     #本例keys是["One","Two","Three"],values是[1,2,3]
        几种混合时,先后排序为:
            固定参数,缺省值参数,*arg,**keyword。
                                   
    3.函数的属性
        函数也是对象,函数名可以象普通变量一样给其他变量赋值(C语言的函数指针的意味)
        __doc__属性,#函数定义的第一个表达式是str的话,就是其__doc__,可作帮助提示。
          
    4.函数的作用域
        遵循LGB原则(调用优先级为local,global,builtin)
       
    5.lambda函数
        函数式编程语言中很基础的东西,可看为一行的匿名函数。
        >>>f = lambda a,b: a+b  #等价于 def f(a,b): return a+b
       
    6.python的一些内置函数(只列关于对象属性的,类型转换等其他的没列出)
        type()  #显示值和变量的类型。
        id()    #以值或变量为参数,返回值是一整数,它表示值或变量的唯一标识符。该值与内存地址相关。
        dir()   #显示包括类,对象实例,文件,列表,复数等等类型的属性和方法。
                #需要该对象有__dict__,__members__和__methods__属性
        hasattr()   #函数测试一个对象是否有特定的属性。
        getattr()   #取回某个对象属性的值。
        setattr()   #为某个对象添加新的属性和值。
        delattr()   #删除对象的某个属性。
        isinstance()#测试一个对象是否为另一个类的实例。
        issubclass()#测试一个类是否为另一个类的子类。
     

原创粉丝点击