一、内置函数   

   前面我们已经学过了内置函数(python自带的):
int()、str()、list()、set()、dict()、tuple()、bool()、type()、len()、input()、print()
   今儿个学习一些新滴,先来一些不常用的,简单记一下:
print(all([1, 2, 3, 4]))  # 判断可迭代的对象里面的值是否都为真
print(all(['1', '2', '3', 0]))  # 有一个为假,即为False
print(any([0, '', False]))  # 判断可迭代的对象里面的值是否有一个为真,则为真
print(bin(10))  # 十进制转二进制
print(chr(33))  # 打印数字对应的ascii
print(ord('b'))  # 打印字符串对应的ascii码
print(hex(111))  # 数字转成16进制
print(oct(111))  # 把数字转换成8进制
print(max([1, 5, 9, 111, 324]))  # 取最大值
print(sum([1, 5, 9, 111, 324]))  # 求和
print(divmod(10, 3))  # 取余
print(round(11.11111, 2))  # 取几位小数
  再来一些比较常用的
#dir讲解
f = open('a.txt', 'w')
print(dir(f))  # dir打印传入对象的可调用方法
s = ''
print(dir(s))

# 局部变量 locals
def func():
    name = 'abc'
    age = 18
    # {'name':'abc','age':18}
    print(locals())  # 返回函数里面的局部变量
func()

#全局变量 globals
name = '123'
print(globals())  # 返回程序内所有的变量,返回的是一个字典

#zip()讲解  把两个list和成一个二维数组
l = ['u1', 'u2', 'u3', 'u4']  # 多写元素也没问题
l2 = ['p1', 'p2', 'p3']
print(list(zip(l, l2)))  # 得转成list,两个list合成一个二维数组
print(dict(zip(l, l2)))  # 字典

   下面我们康康比较重要的:

1、sorted()讲解
   注:sorted字符串、元组、集合、字典都可以排序
(1)list排序
# sorted()讲解
print(sorted([2, 31, 34, 6, 1, 23, 4]))  # 可这样排序
# 也可这样
l = [1, 2, 635, 63, 62, 325, 2352, 6, 2632]
l.sort() #list里面得方法,对原来得l进行排序,改变了位置而已
print(l)
print(sorted(l, reverse=True))  # reverse=True按降序排,sorted用来排序,返回一个新的list,l不会变

运行结果:

[1, 2, 4, 6, 23, 31, 34]
[1, 2, 6, 62, 63, 325, 635, 2352, 2632]
[2632, 2352, 635, 325, 63, 62, 6, 2, 1]

(2)二维数组排序

# 二维数组进行排序
l = [
    ['小名', 5], ['xiaohei', 19],
    ['xiaobai', 20], ['xiaolan', 10]
]
l1 = sorted(l, reverse=True, key=lambda x: x[-1])  # key的作用是传一个函数名
print(l1)

# 也可定义一个函数,让sorted来调用
def use_key(x):
    return x[1]
l2 = sorted(l, reverse=True, key=use_key)  # 让sorted来调用use_key
print(l2)

运行结果:

[['xiaobai', 20], ['xiaohei', 19], ['xiaolan', 10], ['小名', 5]]
[['xiaobai', 20], ['xiaohei', 19], ['xiaolan', 10], ['小名', 5]]

(3)字典排序

# 字典排序
d = {'a': 1, 'b': 2}
print(d)
l1 = sorted({'a': 1, 'b': 2}, reverse=True)  # 直接传一字典,是对字典得key进行排序
print(l1)
l2 = sorted(d.items(), reverse=True, key=lambda x: x[0])  # 通过key来排序
print(l2)
l3 = sorted(d.items(), reverse=True, key=lambda x: x[1])  # 通过value来排序
print(l3)

运行结果:

{'a': 1, 'b': 2}
['b', 'a']
[('b', 2), ('a', 1)]
[('b', 2), ('a', 1)]

(4)三维数组排序

# 三维数组进行排序
l = [
    ('小名', 5, ['xx', 11]),
    ['xiaohei', 19, ['xx', 13]],
    ['xiaobai', 20, ['xx', 18]],
    ['xiaolan', 10, ['xx', 20]]
]
l4 = sorted(l, reverse=True, key=lambda x: x[-1][-1])
print(l4)

运行结果:

[['xiaolan', 10, ['xx', 20]], ['xiaobai', 20, ['xx', 18]], ['xiaohei', 19, ['xx', 13]], ('小名', 5, ['xx', 11])]

2、filter()讲解


# filter()讲解
def filter_test(x):
    return x > 5
result = filter(filter_test, [12, 3, 12, 2, 1, 2, 35])
print(list(result))
# 这俩等同
result = filter(lambda x: x > 5, [12, 3, 12, 2, 1, 2, 35]) # 把后面的迭代对象根据前面的方法筛选
print(list(result))

运行结果:

[12, 12, 35]
[12, 12, 35]

3、map()讲解

# map()讲解
result = map(lambda x: x > 5, [12, 3, 12, 2, 1, 2, 35])
print(list(result))

l = [12, 3, 12, 2, 1, 2, 35]
# map方式实现
result = map(lambda x: str(x).strip().zfill(3), l)
print(list(result))

# 最传统的方式
l2 = []
for i in l:
    new_i = str(i).strip().zfill(3)
    l2.append(new_i)
print(l2)

#列表生成式方式
l3 = [str(i).strip().zfill(3) for i in l]
print(l3)

运行结果:

[True, False, True, False, False, False, True]
['012', '003', '012', '002', '001', '002', '035']
['012', '003', '012', '002', '001', '002', '035']
['012', '003', '012', '002', '001', '002', '035']

4、enumerate()讲解

# enumerate()讲解
l = [12, 3, 12, 2, 1, 35]
index = 0
for i in l:
    print('%s -> %s' % (index, i))
    index += 1
# 俩等同
print('--------')

for index, i in enumerate(l):  # 生成一个二位数组
    print('%s -> %s' % (index, i))

运行结果:

0 -> 12
1 -> 3
2 -> 12
3 -> 2
4 -> 1
5 -> 35
--------
0 -> 12
1 -> 3
2 -> 12
3 -> 2
4 -> 1
5 -> 35

举个小例子:

l = ['购物', '注册', '充值', '积分查询']
for index, i in enumerate(l, 1):  # 指定从1开始
    print('%s -> %s' % (index, i))
print('请输入你的选择:')

运行结果:

1 -> 购物
2 -> 注册
3 -> 充值
4 -> 积分查询
请输入你的选择:

5、exec讲解百度搜--网络在线编程python

# exec 讲解
print(exec('def a():pass'))  # 执行python代码

str_code = '''
# import os
l = [12, 3, 12, 2, 1, 2, 35]
print([str(i).strip().zfill(3) for i in l])
'''
exec(str_code)
# if 'import os' in str_code:
#     print('os模块不能用')

运行结果:

None
['012', '003', '012', '002', '001', '002', '035']

6、eval讲解

# eval 讲解
print(eval('[]'))  # 执行python代码,只能执行简单的,定义数据类型和运算

result = eval('{"code":1,"name":"xiaohei"}')  # 执行python代码,只能执行简单的,定义数据类型和运算
print(result)

运行结果:

[]
{'code': 1, 'name': 'xiaohei'}

二、匿名函数

  •  如果这个函数只执行一次的话,那就可以定义一个匿名函数。
  •  匿名函数只能处理比较简单的处理逻辑,只能写简单的表达式,不能写循环判断,比如三元运算符。
  •  匿名函数定义使用lambda关键字,比如说要定义一个函数,它的功能是返回两个数相加和,就可以使用lambda。

  代码如下:

posted on 2020-05-08 22:37  彩彩常  阅读(179)  评论(0编辑  收藏  举报