• python使用笔记007-内置函数,匿名函数


    1、匿名函数

    匿名函数也是一个函数,是一个简单的函数,没有名字,只能实现一些简单的功能
    1 #匿名函数也是一个函数,是一个简单的函数,没有名字,只能实现一些简单的功能
    2 lambda x:x+1#入参,返回值
    3 
    4 def f2(x):#这个方法与上边的匿名方法实现的内容一样
    5     return x+1
    6 
    7 print(f2(1))

    2、内置函数

    2.1 常用的内置函数

    1 print(max([123,423,1,2,3,45,332]))#取最大值
    2 print(sum([123,423,1,2,3,45,332]))#求和
    3 print(divmod(10,3))#余数
    4 print(round(11.222222,2))#取几位小数
    5 l = ['u1','u2','u3']
    6 l2 = ['p1','p2','p3']
    7 print(list(zip(l,l2)))#将两个list和为一个二维数组
    8 print(dict(zip(l,l2)))#将两个list和为一个字典
     1 l = [1,2,34,12,32,98,3221,98,34,532]
     2 print(sorted(l))#排序
     3 print(sorted(l,reverse=True))#降序排序
     4 print(l)
     5 
     6 l2 = [
     7     ['xiaobai',12],
     8     ['xiaohei',11],
     9     ['lisi',98],
    10     ['wangwu',34]
    11 ]
    12 #lambda x:x[-1],传入的参数是每次循环的值
    13 l3 = sorted(l2,key=lambda x:x[-1])#二维数组排序,key是传一个函数名,是指用哪个参数来进行排序 14 print(l3) 15 def user_key(x): 16 return x[-1] 17 #key是传一个函数名,由sorted循环排序时去调用该函数 18 l4 = sorted(l2,reverse=True,key=user_key) 19 print(l4)
     1 l = [1,2,34,12,32,98,3221,98,34,532]
     2 #循环把list的每个参数传给函数,
     3 #根据某个规则来过滤list里的参数
     4 result = filter(lambda x:x>5,l)
     5 stri = 'fdsfrewrwerwrffdsf'
     6 str_result = filter(lambda x:x!='f',stri)
     7 print(list(str_result))
     8 print(list(result))
     9 #保留函数返回的值,就是循环执行函数
    10 map_result = map(lambda x:x>5,l)
    11 print(list(map_result))
    12 map_result1 = map(lambda x:str(x).strip().zfill(3),l)
    13 print(list(map_result1))
    14 
    15 for index,i in enumerate(l,1):#将list转为带下标的二维数组,传1是从1开始,默认从0开始
    16     print('%s -> %s'%(index,i))
     1 str_code = '''
     2 l = [1,2,34,12,32,98,3221,98,34,532]
     3 map_result1 = map(lambda x:str(x).strip().zfill(3),l)
     4 print(list(map_result1))
     5 print('hhhh')
     6 '''
     7 #让程序自动帮你执行代码,可以执行所有的python代码
     8 #用exec方法有风险,比如执行os.remove()把文件删除等
     9 exec(str_code)
    10 
    11 result = eval('{"name":"xiaohei","age":"19"}')#执行python代码,只能执行简单的,定义数据类型和运算
    12 print(result)

    2.2 不常用的内置函数

     1 print(all([1,2,3,4,5,0]))#判断可迭代对象里的值是否都为真
     2 print(any([1,2,3,4,5,0]))#判断可迭代对象里的值是否有一个为真
     3 print(bin(10))#10进制转2进制
     4 print(hex(10))#10进制转成16进制
     5 print(oct(10))#10进制转成8进制
     6 print(chr(33))#数字对应的ascii码
     7 print(ord('v'))#字符对应的ascii码
     8 #python3 默认的字符集是utf-8
     9 #python2 默认的字符集是ASCII
    10 f = open('a.txt','w')
    11 print(dir(f))#打印传入对象的可调用方法
    12 print(locals())#返回局部变量
    13 def fun():
    14     name = 'abc'
    15     age = 18
    16     print(locals())  # 返回局部变量,返回的是一个字典
    17 fun()
    18 
    19 print(globals())#返回全局变量,返回的是一个字典

    3、递归

    函数自己调用自己,就是递归

    递归最大的次数是999次,如果执行次数超过最大次数就会报错

     1 #函数自己调用自己,就是递归
     2 #递归最大的次数是999次
     3 
     4 count = 1
     5 def xiake():
     6     global count
     7     print(count)
     8     count += 1
     9     print('下课')
    10     xiake()
    11 #xiake()
    12 
    13 #1、递归时:全局变量会一直占着内存,所以递归时能不用全局变量就不用全局变量
    14 #2、递归没有循环的效率高

    4、变量

    4.1 局部变量

    在函数里定义的变量都是局部变量(没有加globals修饰)

    作用域在函数里,出了函数就失败了

    1 name = 'caimingchang'
    2 def fun():
    3     name = 'cai'
    4     print('name1',name)
    5 
    6 fun()
    7 print('name2',name)

    4.2 全局变量

    一般写在代码最上面,作用域是全局的,大家都可以用

    如果定义在函数里,要加globals修饰,而且要执行函数时,才会定义

     1 fun()
     2 print('name2',name)
     3 
     4 
     5 def test():
     6     global a
     7     a = 5
     8 
     9 def test1():
    10     c = a + 5
    11     return c
    12 
    13 res = test1()
    14 print(res)

    这段代码执行会报错,因为全局变量a没有被定义

    4.3 常量

    常量也是一种变量,是一种不会变得变量,一般用全部大写来定义

     1 IP = '192.168.1.13' 2 print(IP) 

  • 相关阅读:
    Wiki上的C++哲学
    UC网盘被关停 将与阿里淘盘合并?(案例说明云盘的成本才是重点,技术不是问题;与巨头竞争是重点)
    又一个!迅雷快盘宣布关闭个人存储服务
    QT运行cmd指令(两种办法:QProcess.start然后waitForFinished,运行cmd /c命令)
    EventBus实现
    彻底抛弃PeopleEditor,SharePoint中利用Jquery Chosen创建新的人员选择器
    软件用了那些技术2
    软件的模块化开发
    在C#中模拟Javascript的setTimeout方法
    IP:网际协议
  • 原文地址:https://www.cnblogs.com/cjxxl1213/p/12828189.html
Copyright © 2020-2023  润新知