__author__ = 'laowang'
'''
def 函数名():
函数体
内置函数
本节我们讲内置函数。 首先来说,函数就是以功能为导向,一个函数封装一个功能,
那么Python将一些常用的功能(比如len)给我们封装成了一个一个的函数,供我们使用,
他们不仅效率高(底层都是用C语言写的),而且是拿来即用,避免重复早轮子,
那么这些函数就称为内置函数,到目前为止python给我们提供的内置函数一共是68个,
由于时间关系以及考虑这些函数的不同重要性我们会挑常用的重要的内置函数去讲,
就是下面红色黄色背景的内置函数,剩下的内置函数你们参照着我的博客自己课下练习一下即可。
一带而过:
all() any() bytes() callable() chr() complex() divmod() eval()
exec() format() frozenset() globals() hash() help() id() input()
int() iter() locals() next() oct() ord() pow() repr() round()
重点讲解:abs() enumerate() filter() map() max() min() open() range()
print() len() list() dict() str() float() reversed() set() sorted()
sum() tuple() type() zip() dir()
未来会讲: classmethod() delattr() getattr() hasattr() issubclass()
isinstance() object() property() setattr() staticmethod() super()
help:函数用于查看函数或模块用途的详细说明
print(help(list))
print(help(str.split))
bin:将十进制转换成二进制并返回。
oct:将十进制转化成八进制字符串并返回。
hex:将十进制转化成十六进制字符串并返回。
'''
def name():
print(1234567890)
name()
def number_sum(a,b):
return a+b , a-b , a*b
print(number_sum(999,999))
'''
匿名函数
匿名函数,顾名思义就是没有名字的函数,那么什么函数没有名字呢?
这个就是我们以后面试或者工作中经常用匿名函数 lambda,也叫一句话函数。
现在有一个需求:你们写一个函数,此函数接收两个int参数,返回和值
函数名 = lambda 参数:返回值
1)此函数不是没有名字,他是有名字的,他的名字就是你给其设置的变量,比如func.,
2)lambda 是定义匿名函数的关键字,相当于函数的def.
3)lambda 后面直接加形参,形参加多少都可以,只要用逗号隔开就行
4)返回值在冒号之后设置,返回值和正常的函数一样,可以是任意数据类型。
5)匿名函数不管多复杂.只能写一行.且逻辑结束后直接返回数据
'''
func = lambda a,b: a+b
print(func(3,4)) # 7
#写匿名函数:接收一个可切片的数据,返回索引为0与2的对应的元素(元组形式)
func = lambda x:(x[0],x[2])
print(func('afafasd'))
#写匿名函数:接收两个int参数,将较大的数据返回
func = lambda a,b : a if a>b else b
print(func(123,1231))
'''
divmod:计算除数与被除数的结果,返回一个包含商和余数的元组(a // b, a % b)。
round:保留浮点数的小数位数,默认保留整数。
pow:求x**y次幂。(三个参数为x**y的结果对z取余)
'''
print(divmod(7,2)) # (3, 1)
print(round(7/3,2)) # 2.33
print(round(7/3)) # 2
print(round(3.32567,3)) # 3.326
print(pow(2,3)) # 两个参数为2**3次幂
print(pow(2,3,3)) # 三个参数为2**3次幂,对3取余。
#repr:返回一个对象的string形式(原形毕露)。
print(repr('{"name":"alex"}')) # repr 里面的内容,当成字符串输出出来
print('{"name":"alex"}')
'''
zip() 拉链方法。函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,
然后返回由这些元祖组成的内容,如果各个迭代器的元素个数不一致,则按照长度最短的返回,
'''
lst1 = [1,2,3]
lst2 = ['a','b','c','d']
lst3 = (11,12,13,14,15)
for i in zip(lst1,lst2,lst3):
print(i)
'''
字典使用sorted排序
dic = {1:'a',3:'c',2:'b'}
print(sorted(dic)) # 字典排序返回的就是排序后的key
结果:
[1,2,3
'''
lst = [{'id': 1, 'name': 'alex', 'age': 18},
{'id': 2, 'name': 'wusir', 'age': 17},
{'id': 3, 'name': 'taibai', 'age': 16}, ]
# 按照年龄对学生信息进行排序
print(sorted(lst, key=lambda e: e['age']))
#定义一个列表,然后根据一元素的长度排序
lst = ['天龙八部','西游记','红楼梦','三国演义']
def func(s):
return len(s)
print(sorted(lst, key=func))
'''
filter筛选过滤
语法: filter(function,iterable)
function: 用来筛选的函数,在filter中会自动的把iterable中的元素传递给function,
然后根据function返回的True或者False来判断是否保留此项数据
'''
lst = [{'id': 1, 'name': 'alex', 'age': 18},
{'id': 1, 'name': 'wusir', 'age': 17},
{'id': 1, 'name': 'taibai', 'age': 16}, ]
ls = filter(lambda e: e['age'] > 16, lst)
print(list(ls))
'''
Map映射函数
映射函数
语法: map(function,iterable) 可以对可迭代对象中的每一个元素进映射,分别取执行function
计算列表中每个元素的平方,返回新列表
'''
print('----------------------------------------------------------------------')
lst = [1,2,3,4,5]
def func(s):
return s*s
mp = map(func,lst)
print(mp)
print(list(mp))
# 改写成lambda
lst = [1,2,3,4,5]
print(list(map(lambda s:s*s,lst)))
# 计算两个列表中相同位置的数据的和
lst1 = [1, 2, 3, 4, 5]
lst2 = [2, 4, 6, 8, 10]
print(list(map(lambda x, y: x+y, lst1, lst2)))
def l1(a):
'''
:param a:
:return: 存在就返回下标,不存在就-1
'''
lst1 = [1, 2, 3, 4, 5]
for i in range(len(lst1)):
if lst[i] == a:
return i
return -1
print(l1(2))
def max_min():
l = []
while True:
number = int(input('请输入(0退出):'))
if number == 0:
break #跳出循环 continue:终止本次循环,开始下一次循环
l.append(number) # 录入的数字加到 l列表中
l.sort() # 列表的排序方法, 从小到大排
print('最大值:',l[0],'最小值:',l[len(l)-1])
# max_min()
def min_max(a,b,c):
max1 = 0
min1 = 0
if a>b :
if a>c:
max1=a
if b > c:
min1 = c
else:
min1 = b
else :
max1 = c
elif b>c :
max1=b
if a > c:
min1 = c
else:
min1 = a
else:
max1=c
if b > a:
min1 = a
else:
min1 = b
return max1,min1
# print(min_max(123123,5345345,7223425))
def info_table(a,b):
for i in range(a,b+1):
for j in range(1,i+1):
print(j*i,end=' ')
print()
# info_table(2,9)