python-函数&内置函数&模块

1、内置函数

  • all()、any()
    1 # all() 判断可迭代的对象里面的值是否都为真
    2 print(all([1,2,3,4]))  # 结果:True
    3 print(all([1,2,3,0]))  # 结果:False
    4 
    5 #any() 判断可迭代的对象里面的值是否有一个为真
    6 print(any([1,2,3,0]))  # 结果:True
    7 print(any(['',False,0]))  # 结果:False
  • bin()、chr()、ord()
     1 # bin() 十进制转二进制
     2 print(bin(10)) # 0b1010 0b开头表示是二进制
     3 
     4 # hex() 数字转成16进制
     5 print(hex(111))  # 结果:0x6f
     6 
     7 # oct() 数字转成8进制
     8 print(oct(111))  # 结果:0o157
     9 
    10 # chr() 打印ascii码对应的数字或字符
    11 print(chr(98))  # 结果:b
    12 
    13 # ord() 打印字符串对应的ascii码
    14 print(ord('b'))  # 结果:98
  • dir()、locals()、globals()
     1 # dir('') 打印传入对象的可调用方法
     2 f = open('a.txt','w')
     3 print(dir(f))
     4 
     5 # locals() 返回函数里的局部变量
     6 def func():
     7     name = 'abc'
     8     age = 18
     9     print(locals()) #以字典形式返回局部变量
    10 func()
    11 
    12 # golbals() 返回程序内所有的变量,返回的是一个字典
    13 name = '123'
    14 print(globals())

 

  • 比较常用的内置函数
    1 # 取最大值
    2 print(max([1,5,9]))
    3 
    4 # 取余 结果:(3, 1)
    5 print(divmod(10,3))
    6 
    7 # 取几位小数 结果:11.11
    8 print(round(11.111111,2))

   zip()

1 # 把两个list合成一个二维数组
2 l = ['u1','u2','u3','u4']
3 l2 = ['p1','p2','p3']
4 print(list(zip(l,l2)))  # 结果:[('u1', 'p1'), ('u2', 'p2'), ('u3', 'p3')]
5 print(dict(zip(l,l2)))  # 结果:{'u1': 'p1', 'u2': 'p2', 'u3': 'p3'}

         sorted():

  •  1 # sorted()
     2 # 应用一
     3 l = [1,2,635,63,62,325,2352]
     4 print(sorted(l,reverse=True))
     5 print(l)
     6 
     7 # 应用二
     8 l = [
     9     ['小名',5],['xiaohei',19],
    10     ['xiaobai',20],['xiaolan',10]
    11 ]
    12 
    13 
    14 def use_key(x):
    15     return x[1]
    16 
    17 # key的作用是传一个函数名
    18 # l2 = sorted(l,reverse=True,key=lambda x:x[-1])
    19 # 按数字倒序排列
    20 # 结果:[['xiaobai', 20], ['xiaohei', 19], ['xiaolan', 10], ['小名', 5]]
    21 l2 = sorted(l,reverse=True,key=use_key)  
    22 print(l2)
    23 print(l)
    24 
    25 # 应用三
    26 d = {'a':1,'b':2}
    27 print(d)
    28 print(sorted({'a':1,'b':2},reverse=True)) #['b', 'a']
    29 l2 = sorted(d.items(),reverse=True,key=lambda x:x[0])
    30 print(l2) #[('b', 2), ('a', 1)]
    31 
    32 
    33 # 应用四
    34 l = [
    35     ['小名',5,['xx',11]],['xiaohei',19,['xx',13]],
    36     ['xiaobai',20,['xx',18]],['xiaolan',10,['xx',20]]
    37 ]
    38 
    39 # 结果:[['xiaolan', 10, ['xx', 20]], 
    40 # ['xiaobai', 20, ['xx', 18]],
    41 #  ['xiaohei', 19, ['xx', 13]],
    42 #  ['小名', 5, ['xx', 11]]]
    43 l2 = sorted(l,reverse=True,key=lambda x:x[-1][-1])
    44 print(l2)

    filter():

     1 # filter():过滤数据
     2 result = filter(lambda x:x>5,[12,3,12,2,1,2,35])
     3 print(result)  # 返回一个对象:<filter object at 0x10a334780>
     4 print(list(result))
     5 
     6 
     7 def filter_test(x):
     8     return x>5
     9 
    10 result1 = filter(filter_test,[12,3,12,2,1,2,35])
    11 print(list(result1))

    map():

     1 # map():保存返回值
     2 result = map(lambda x:x>5,[12,3,12,2,1,2,35])
     3 # 结果:[True, False, True, False, False, False, True]
     4 print(list(result))
     5 
     6 # map方式实现
     7 l =[12,3,12,2,1,2,35]
     8 result1 = map(lambda x:str(x).strip().zfill(3),l)
     9 # 结果:['012', '003', '012', '002', '001', '002', '035']
    10 print(list(result1))
    11 
    12 # 传统方式实现
    13 l2 = []
    14 for i in l:
    15     new_i = str(i).strip().zfill(3)
    16     l2.append(new_i)
    17 print(l2)
    18 
    19 # 列表生成式实现
    20 l3 = [str(i).strip().zfill(3) for i in l]
    21 print(l3)

    enumerate():      

     1 # enumerate():自动计算下标
     2 
     3 # 实现方式一
     4 l = ['购物','注册','充值','积分查询']
     5 index= 0
     6 for i in l:
     7     print('%s -> %s'%(index,i))
     8     index += 1
     9 
    10 # 实现方式二
    11 for index,i in enumerate(l):
    12     print('%s -> %s' % (index, i))
    13 
    14 print('请输入你的选择:')
    1 # 运行结果
    2 '''
    3 0 -> 购物
    4 1 -> 注册
    5 2 -> 充值
    6 3 -> 积分查询
    7 请输入你的选择:
    8 '''

    exec()、eval()

     1 # exec():执行python代码
     2 str_code = '''
     3 import os
     4 l = ['购物','注册','充值','积分查询']
     5 l3 = [str(i).strip().zfill(3) for i in l]
     6 print(l3)
     7 '''
     8 if 'import os' in str_code:
     9     print('os模块不能用')
    10 else:
    11  exec(str_code)
    12 
    13 
    14 # eval():用来执行python代码,执行简单的:定义数据类型和运算
    15 result = eval('{"code":1,"name":"lzh"}') #字符串转字典
    16 print(result) 

    lambda表达式:

    1 # 匿名函数也是一个函数
    2 f1 = lambda x, y: x+y
    3 
    4 
    5 def f2(x):
    6     return x+1
    7 
    8 print(f1(1,2))  # 结果:3
    9 print(f2(1))   # 结果:2

     

2、函数

  • 函数返回多个值
 1  1 # 函数返回多个值:以元祖形式返回
 2  2 def func():
 3  3     a = 1
 4  4     b = 2
 5  5     c = 3
 6  6     return a,b,c
 7  7 
 8  8 result = func()
 9  9 print(result)  # 结果:(1, 2, 3)
10 10 # 解包
11 11 a,b,c = func()
12 12 print(a,b,c)  # 结果:1 2 3
  • 局部变量&全局变量
 1 # 局部变量:在函数里面定义的变量都是局部变量(没有加global修饰),作用域是在函数里面,出了函数就失效了
 2 # 全局变量:定义在函数外面,一般都是写在代码的最上面,作用域是全部的,大家都可以用
 3 name = 'lzh'
 4 
 5 
 6 def rename():
 7     name = 'lzh1'
 8     print('name1',name)  
 9 
10 rename()  # 结果:lzh1
11 print('name2',name)  # 结果:lzh
 1 name = 'lzh'
 2 
 3 
 4 def rename():
 5     global name  # 声明全局变量
 6     name = 'lzh1'
 7     print('name1',name)
 8 
 9 rename()  # 结果:lzh1
10 print('name2',name)  # 结果:lzh1
 1 # 练习一
 2 money = 500
 3 
 4 
 5 def test(consume):
 6     return money - consume
 7 
 8 
 9 def test1(money):
10     return test(money) + money
11 
12 money = test1(money)
13 print(money)  # 结果:500
 1 # 练习二
 2 def test():
 3     global a
 4     a = 5
 5 
 6 
 7 def test1():
 8     c = a + 5
 9     return c
10 
11 # 注意:函数只是定义,没调用不会被执行
12 res = test1() # 只会执行test1(),不会执行test(),所以找不到a
13 print(res)  # 结果:NameError: name 'a' is not defined

 

 

 

3、random模块

 1 import random
 2 
 3 # 随机整数
 4 number = random.randint(1,100)
 5 print(number)
 6 # 随机小数
 7 f = random.uniform(1,100)
 8 print(f)
 9 
10 # 从你给的数据里面随机选择一个
11 l = [1,2,3,4,5,6]
12 print(random.choice(l))
13 
14 # 随机从list里面取N个元素
15 print(random.sample(l,5))
16 
17 # 洗牌,打乱
18 l = [str(i) for i in range(1,14)]
19 random.shuffle(l)
20 # 结果:['7', '6', '13', '12', '2', '11', '5', '10', '4', '1', '9', '3', '8']
21 print(l)

 

4、导入模块

1 #模块:一个python文件
2 #1、标准模块,python自带的,不需要单独按照
3 #2、第三方模块,需要自己安装
4 
5 # import一个文件,就是把这个模块里的代码执行一次
6 # 导入模块的顺序:
7 #   1、从当前目录下找
8 #   2、从python的环境变量里面找
9 # import一个文件夹的时候,就是执行这个文件夹里的__init__.py文件

 

posted @ 2020-05-07 22:30  tour8  阅读(160)  评论(0)    收藏  举报