Python3-基础- 函数

函数  -- 独立的代码块、具有特定的功能

1 内置函数

# 查看所有的内置函数
import builtins
print(dir(builtins))

2 常用函数

# 1 input() 以str形式从键盘接收内容
a = input('请输入:')
print(type(a))
print(a)

# 2 abs()  返回绝对值
print(abs(17))
print(abs(-17))

# 3 sum() 求和
print(sum([1, 2, 3]))

# 4 min()最小值  max()最大值
print(min([3, 1, 7]))
print(max([3, 1, 7]))

# 5 zip()  拉链函数  函数将可迭代对象作为参数,将里面对应的元素打包成一个个元组
# 元素个数不一致,按照长度最短的返回
a = [1, 2, 3]
b = ['a', 'b', 'c']
print(zip(a, b))  # <zip object at 0x000001624C495788>
print(list(zip(a, b)))  # 转换成列表打印  # [(1, 'a'), (2, 'b'), (3, 'c')]

# 6 map(函数, 对象) 映射函数 将可迭代对象中每一个元素来进行映射,分别执行函数
li = [1, 2, 3]
def funa(x):
    return x * 3
mp = map(funa, li)   # 每个元素分别执行funa函数
print(mp)
print(list(mp))      # [3, 6, 9]    # 得到一个新的list

# 7 enumerate()函数  一般用于for循环中
li = [[1, 2], [3, 4], [5, 6]]  # 嵌套列表
for i in li:
    print('列表中的值:', i)
for n, i in enumerate(li):     # n是下标   i是列表遍历出的值
    print(f'这是下标值n:{n},这是i值的第一个元素:{i[0]},这是i值的第二个元素:{i[1]} ')

# 8 reduce(函数, 对象): 先把对象中的前两个元素取出,计算出一个值然后保存着, 接下来把这个值跟第三个元素进行计算
# 函数: 必须接收两个参数
# 对象: 可迭代对象
li2 = range(101)
from functools import reduce
def add(x, y):
    return x + y
res = reduce(add, li2)
print(res)
print(reduce(lambda a, b: a * b, [3, 6, 4]))

# 9 递归函数       一个函数在内部不调用其他的函数,而是调用它本身
# 1.必须有一个明确的结束条件
# 2.每进行更深一层的递归时,问题规模相比上次递归都要有所减少
# 3 相邻两次重复之间有紧密的联系
# 递归函数
# python中的递归深度是有限制, 默认为1000
# break是在循环中使用

# 举例:
# 斐波那契数列 这个数列从第三项开始, 每一项都等于前两项之和
def fib(n):  # n代表第几个数
    if n <= 1:
        return n
    return fib(n-1) + fib(n-2)
print(fib(6))
for i in range(1, 11):
    print(fib(i))

3 自定义函数

# 语法
#   def 函数名():
#       函数体

# 调用函数: 函数名()

# return
# 1.遇到return,return下面的代码不会执行
# 2.return返回值:
#     1 如果return后面什么都不写,返回的结果是None
#     2 如果有一个值,把值返回给调用者
#     3 如果有多个值,返回一个元组


def test():
    n = 10
    return n, 'jiuge', '198'
print(test())   # (10, 'jiuge', '198')


def test2():
    return 123
    # print(456)
print(test2())  # 123

4 函数参数--形参和实参

函数传参 :就是函数将实参交给形参的过程

形参:写在定义函数的位置,这个变量叫形参

实参:写在函数调用的位置,这个值叫实参

def add(a, b):  # a和b是形参
    return a+b    # a=5,  b=6

print(add(5, 6))  # 5和6是实参

默认参数:设置默认值,当没有传值会根据默认值执行代码; 传了值就根据传入的值来执行代码

def test2(a=10):
    print(a)
test2(200)
test2()

可变参数:传入的值的数量是可以改变, 可以传入多个,也可以不传

        *args:前面的*是有特殊意义的; args是一个普通的形参, 规定使用args,约定俗成;以- 元组-的形式接收

        **kwargs:前面的**是有特殊意义的; kwargs是一个普通的形参, 规定使用kwargs,以-字典-的形式接收

def test(*args):
    print(args)    #('pyy', '123', 'hello')
    print(type(args))  # <class 'tuple'>

test('pyy','123', 'hello')


def test(**kwargs):
    print(kwargs)     #{'name': 'pyy', 'age': '18'}
    print(type(kwargs)) # <class 'dict'>
test(name = 'pyy', age = '18')

5 函数嵌套

        嵌套调用: 在函数A里面调用函数B

        嵌套定义:在一个函数中定义另外一个函数

def eat():
    print('吃饱了')
def sleep():
    eat()            # 函数里调用eat()
    print('睡觉')
sleep()
def play():
    print('玩完了')
    def Home():      # 函数里定义Home()
        print('回家')
    Home()
play()

6 匿名函数

# 语法:
#   函数名 = lambda 形参: 返回值(表达式)
res = lambda a, b: a * b  # a,b就是匿名函数的参数,   a+b是返回值的表达式
print(res(5, 6))
# lambda 不需要写return来返回值,表达式本身结果就是返回值


# 为真结果 if 条件 else 为假结果   # if else左真右假
n1 = 5
n2 = 8
print(n1) if n1 < n2 else print(n2)
we = lambda x, y: 'True' if x > y else 'False'
print(we(1, 2))

7  拆包

tu = (1, 2, 3, 4)
a, b, c, d = tu
print(a, b, c, d)  # 1 2 3 4

a, *b = tu
print(a)  # 1 取到开头的值
print(b)  # [2, 3, 4]

*c, d = tu
print(c)   # [1, 2, 3]
print(d)   # 4   取到结尾的值

 以上是作者学习总结,分享所学,共同进步。如若哪处有误,感谢指出!    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Q _Q

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值