函数
1.函数概念及定义
函数就是完成特定功能的代码的集合,这组代码可以作为一个单位使用,并且给他取一个名字。
# 可以通过函数名在程序的不同地方多次执行(函数执行)
(1)降低编程的难度。
通常将一个复杂的大过程分解成n个小过程,然后将小过程划分成更小的过程,当过程细化为足够简单时,我们就可以分而治之。各个小过程解决了,大过程就迎刃而解了。
(2)代码复用
避免重复编写某段代码,提高效率。
def 函数名(参数):
pass:不进行任何操作,但可以保证格式正确(这是常用于函数构建布局,防止格式报错)
return:返回值(没有默认None)
2.函数命名规则:
1.只能是一个词。
2.只能包含字母、数字、和下划线。
3.不能以数字开头。
4.不可以使用关键字(重名)
5.取名尽量有意义
3.函数调用
函数名(参数)
有参数就传参数
4.return:
return:返回值(没有默认None)
注意:return–函数的返回值,返回值就可以赋值,返回值可以赋值给变量
print只是将数据打印在控制台上面展示
5.案例
def demo():
a = 1
return a
num = demo()
print(num)
函数参数
1.必备参数
# 写几个传几个
def func(x):
print(x)
func(10) # 或者指定传入 func(x=10)
2.默认参数
def func(x, y = None):
print(x, y)
func(x=10)
func(x='哈哈',y='帅')
# 默认参数设置在必备参数后面
3.不定长参数
*args: 接收除字典(键值对)以外的类型数据
**kargs:接收字典类型数据 ---- 键值对形式 :# 例如:a = 1
def func(*args, **kargs):
print(args)
print(kargs)
func(1,2,3,'hhahah', [1,2,3], a=1, b=2)
# (1, 2, 3, 'hhahah', [1, 2, 3])
# {'a': 1, 'b': 2}
func(1,2,3,'hhahah', [1,2,3],{'a': 1, 'b': 2})
# (1, 2, 3, 'hhahah', [1, 2, 3], {'a': 1, 'b': 2})
# {}
4.小结
# 1.参数类型
必备参数:调用函数必须传入
默认参数: 调用函数时可以不用进行传参,有默认值
不定长参数:函数调用时可以不用传不定长参数。也可以传任意长度
# 2.参数调用
位置参数,关键字参数
# 3.在python中,接收参数无类型限制(可接收任意对象), 只有函数内部根据应用场景进行限制
# 4.注意事项: 参数定义时先后顺序:必备参数,默认参数, *args, **kargs
常见的内置函数
1.内置对象查看
# dir()
a = [1]
print(dir(a))
2.常见函数
函数 | 概念 |
---|---|
len() | 查长度 |
min() | 求最小值 |
max() | 求最大值 |
sorted() | 排序 |
reversed() | 反向(返回一个反转的迭代器) |
sum() | 求和 |
3.进制转化
函数 | 概念 |
---|---|
bin() | 转化二进制 |
int(‘转化进制数据’,‘进制类型’) | 转化为十进制 |
oct() | 转化为八进制 |
hex() | 转化为十六进制 |
ord() | 字符转ASCLL码 |
chr() | ASCLL码转字符 |
高级内置函数
1.enumerate:
返回一个可以枚举对象(转化序列类型,输出(下标,元素)元组组成的)
li = ['张', '三']
s = enumerate(li)
# <enumerate object at 0x000001D4A55138C0>
print(list(s))
# [(0, '张'), (1, '三')]
for i in s:
print(i)
2.eval:
取出字符串里面的内容,将str里面看出有效的表达式,来进行返回计算结果
a = '1+2+3'
print(eval(a))
3.exec:
执行编译过的字符串
x = 3
y = 4
exec('sums = x+y')
print(sums)
4.filter
过滤器
def func(x):
return x > 5
li = [i for i in range(8)]
# filter(执行筛选条件函数, 筛选数据)
print(list(filter(func, li)))
5.map()
map(fuction, iterable): 对iterable里面的每个元素都应用fuction函数
li = [1,2,3]
def func(x):
return x*10
print(list(map(func, li)))
6.zip
将对象逐一配对(有就配,没有就不配
l1 = [1,2,3]
l2 = ['a', 'b']
print(dict(zip(l1, l2)))
print(list(zip(l1, l2)))
# iter--- 创建迭代器对象,并打印项目, 通过next可以逐一打印: ---- 内建函数
x = iter(["apple", "banana", "cherry"])
print(next(x))
print(next(x))
print(next(x))
# 实例 ---- for循环:遍历迭代对象
l1 = [1,2,3]
l2 = ['a', 'b']
s = zip(l1, l2) # 配对
print(s)
its = iter(s) # iter创建迭代对象
print(its)
print(next(its)) # next取值
print(next(its))
s = zip(l1, l2) # 配对
print(s)
for i in s: # 自动实现操作
print(i)