Python小记

1.使用a = raw_input('****:')时,raw_input()返回的值是字符串类型,如要接收一个数值类型的输入,需要加强制类型转换,如 a = int(raw_input('****:')),但如果int()识别括号中的内容为字符串,并不为合法数字时会报错,程序退出。


2.d1=['ss',88,20.3]  //list类型,可修改,d[index],index为下标0,1,2...,删除时d.pop()
   d2=('54',74,'my')   //tuple类型,不可修改,d[index],index为下标0,1,2...
   d3=('54',[85,'ss']) //组合类型,[]list中的可做修改和删除,d[index],或者d[index1][index2],index为下标0,1,2...
   d4={'aa':87,'bb':42,0:60} //dic类型(map),键值对,d{key:value,...},d[key],d.get(key,-1)表示无匹配值则返回-1,key不可变,Hash算法,删除时d.pop(key)
   d5=set([1,2,3])  //set类型,key的集合,不存在重复key,创建时参数必须为list类型,后期添加d.add(8)参数为数值型或字符串型,删除时d.remove(key),s1&s2两个结合的交,s1|s2两个集合的并


3.def函数返回多值其实是返回到一个tuple类型中,语法上tuple可以不带().调用函数时用一个tuple变量来接收。


4.在Python中定义函数,可以用必选参数、默认参数、可变参数和关键字参数,这4种参数都可以一起使用,或者只用其中某些,但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数和关键字参数。
如def func(a,b=0,*c,**d)//c是可变参数接收的是tuple类型(省略括号),d是关键参数接收的是dic类型。func(1,2,‘12’,14,‘ss’,value=78)输出为a=1,b=2,c=('12',14,'ss'),d={'value':78}.


5.L=[x*x for x in range(10)]为一个list,输出为[0,1,4,9,16,25,36,49,64,81],系统存储的是变量。
G=(x*x for x in range(10))是一个生成器Generator,存储算法,每次调用G.next()才会去计算下一个值。
函数中加了yield表示当前函数为生成器,执行时遇到到yield就中断一次,下次又继续执行。


6.数值类型和字符串类型转换:'%s'%x表示把数值型的x转换为字符串类型,同样%d整数%s字符串%f浮点数%x十六进制数,%02d中0表示不足2位补0,%.2f表示小数点后保留两位。


7.map(f,[x1,x2..]),f为带一个参数的函数名,f作用于[x1,x2...]每个元素输出;reduce(f,[x1,x2...]),f为函数名,f为带多个参数的函数名,如参数个数为2,表示为f(f(f(x1,x2),x3),x4)等。


8.filter的使用:属于过滤系列
  >>>def is_add(n):return n%2==0    //表示n%2==0返回True,否则返回False
  >>>filter(is_add,[1,2,3,4,5,6,7,8,9])    //输出[2,4,6,8]
  >>>def not_empty(s):return s and s.strip()    //表示去除空格
  >>>filter(not_empty,['A',' ','B','C',' '])    //输出['A','B','C']


9.>>>def cout():
         fs=[]
         for i in range(1,4):
             def f():
                  return i*i
             fs.append(f)
         return fs
 >>>f1,f2,f3=count()   //调用f1(),f2(),f3()输出9,9,9
 注意到返回的函数在其定义内部引用了局部变量args,所以当一个函数返回了一个函数后,其内部的局部变量还被新函数引用。在上述例子中,每次都创建了一个新的函数,然后把创建的函数都返回了。但是返回的函数都引用了变量i,但它并非立刻执行,直到调用f1(),f2(),f3()才会去执行。等到三个函数都返回时,它们所引用的变量i已经都变成了3.因此,返回闭包时牢记一点:返回函数不要引用任何循环变量,或者后续会发生变化的变量。
 若一定要引用循环变量,方法为再创建一个函数,用该函数的参数绑定循环变量的当前值,无论该循环变量后续如何更改,已绑定到函数参数的值不变:
 >>>def count():
        fs=[]
        for i in range(1,4):
            def f(j):
                def g():
                    return j*j
                return g
        fs.append(f(i))
        return fs
 >>>f1,f2,f3=count()  //调用f1(),f2(),f3()输出1,4,9

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值