13.函数基础

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.小结


def greet_user(username):
    print("hello," + username + "!" )
 
greet_user('python')

在这里插入图片描述

# 1.参数类型
	必备参数:调用函数必须传入
    默认参数: 调用函数时可以不用进行传参,有默认值
    不定长参数:函数调用时可以不用传不定长参数。也可以传任意长度
# 2.参数调用
	位置参数,关键字参数
	注意:不定长参数中的 *args , 如果关键字传参不要出现在*args 前面,否则会报错
	(name, age=18, *args)  --- ('shuai', age=22) --- 报错
	
	
# 3.在python中,接收参数无类型限制(可接收任意对象), 只有函数内部根据应用场景进行限制

# 4.注意事项:
参数定义常规顺序:必备参数,默认参数, *args,**kwargs
参数定义特殊顺序:必备参数,*args,默认参数,  **kwargs---(x, *args, y=None, **kwargs)




常见的内置函数

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)))


# 实例  ---- for循环:遍历
s = zip(l1, l2)    # 配对
print(s)

for i in s:   # 自动实现操作
    print(i)

注意:迭代


# iter--- 创建迭代器对象,并打印项目, 通过next可以逐一打印: ---- 内建函数
x = iter(["apple", "banana", "cherry"])
print(next(x))
print(next(x))
print(next(x))



l1 = [1,2,3]
l2 = ['a', 'b']

# zip返回的数据是迭代器对象
s = zip(l1, l2)  # 配对
print(s)

print(next(its))  # next取值
print(next(its))


如何判断一个对象是可迭代对象呢?可以通过collections模块的Iterable类型判断,具体判断方法如下:
from collections import Iterable #导入Iterable 模块
isinstance(变量, Iterable) #判断一个变量是否为可迭代对象返回True表明是可迭代对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值