美文网首页Python
Python函数和高阶函数

Python函数和高阶函数

作者: 爱写代码的小王子 | 来源:发表于2021-06-09 13:09 被阅读0次

函数(基础、高阶函数(实参高阶函数、返回值高阶、装饰器))

1.函数就是实现某一特定功能的代码块

sum = 0
for x in range(1,101):
    sum += x
print(sum)

2.定义函数(创建函数)

语法:
def 函数名(形参列表):
    函数说明文档
    函数体
说明:
def - 关键字,固定写法
函数名 - 程序员自己命名(要求和规范和变量一样)
(): - 固定写法
形参列表 - 以'变量名1','变量名2','变量名3,...'的形式存在
形参的作用是将函数外部的数据传到函数内部
函数说明文档 - 一个文档注释(相当于说明书)
函数体 - 和def保持一个缩进的一条或多条语句。(就是实现函数功能的代码)

3.调用函数

语法:函数名(实参列表)
说明:
函数名 - 想要调用那个函数就写那个函数名(函数在调用之前必须先定义)
实参列表 - 多个数据用逗号隔开

4.函数的参数

  • 位置参数和关键字参数
    位置参数需要一一对应
    关键字参数可以换位置
#位置参数
def func1(x,y,z):
    print(f'x:{x},y:{y},z:{z}')
func1(10,20,30)
#关键字参数
func1(y = 100,x = 200 ,z= 300)
  • 定义函数的时候给参数赋默认值
#定义函数的时候给参数赋默认值
def func2(x=10,y=20,z=30):
    print(f'x:{x},y:{y},z:{z}')
func2()
  • 不定长参数

不给任何参数返回的就是一个空元组

#不定长参数,不给任何参数返回的就是一个空元组
def sum(*nums):
    sum = 0
    for x in nums:
        sum += x
    print(sum)

#返回空元组
sum()
#有参数
sum(1,2,3)

def student_info(name,age,*score):
    print(f'名字:{name},年龄:{age},分数:{score}')

student_info('小明','19',90,100,80)

5.匿名函数

函数名 = lambda 形参列表:返回值

相当于:
def 函数名(形参列表):
    return 返回值

位置参数和关键字参数的实际区别

#位置参数
def func1(x,y,z):
    print(f'x:{x},y:{y},z:{z}')

func1(10,20,30)

#关键字参数
func1(y = 100,x = 200 ,z= 300)
#定义函数的时候给参数赋默认值
def func2(x=10,y=20,z=30):
    print(f'x:{x},y:{y},z:{z}')
func2()
#传参需用关键字参数
func2(x = 10)

程序实战,对两个数求和以及判断字符串是否是纯数字


def sum_n(n):
    sum = 0
    for x in range(1,n+1):
        sum += x
    print(sum)

# sum_n(100)
# sum_n(50)
# sum_n(20)

#求两个数的和
def add(x,y):
    """求两个数的和"""
    return x+y
print(add(1,2))
#求一个数的阶乘
def factor(n):
    """一个数的阶乘"""
    sum = 1
    while n>1:
        sum *= n
        n -= 1
    return sum
print(factor(5))
#判断字符串是否是纯数字字符串
def is_number_str(str1):
    """提取字符串里每一个字符,并判断是否是数字"""
    for x in str1:
        if not '0' <= x <= '9':
            return False
    return True
#定义一个函数交换一个字典的键和值
#{键:值 for 变量 in 序列}
def exchange_key_value(dic):
    return {dic[key]:key for key in dic}

exchange_key_value({1:0,0:1})
#is_number_str('a12')

高阶函数,也就是匿名函数,不用写函数名

#定义匿名函数求两个数的和
sum = lambda num1,num2: num1 + num2
sum(1,2)
sum(num1=10,num2=20)
#实参高阶函数
#系统常用的实参高阶函数:max、min、sorted、map
nums = [80,95,-120,64,18]
max(nums)
sorted(nums,reverse=True)
print(list(map(abs,nums)))
#个位数最大的元素
#key是一个函数,函数有一个参数(指向序列中的元素),有一个返回值
def func(x):
    return x%10
max(nums,key = func)
min(nums,key = lambda item:item % 10)
max(nums,key = lambda item:abs(item))

students = [{'name':'stu1','age':20,'score':90},{'name':'stu2','age':19,'score':98},{'name':'stu3','age':25,'score':80}]

#获取字典里的键值
def get_dic_value(dic):
    value = []
    for key in dic:
        value.append(dic[key])
    return value[2]
# dic = {'name':'stu1','age':20,'score':90}
# print(get_dic_value(dic))
#对学生的分数和年龄进行排序
sorted(students,key = lambda item:get_dic_value(item))

总结:上午的课程学习了python函数和函数编程的一些技巧和方法,还有高阶函数的简单使用,总的来说比较简单,最难的是对学生的年龄进行排序,使用到了高阶函数和字典键值对的知识,感觉收获很多。

相关文章

  • python装饰器

    装饰器简述 要理解装饰器需要知道Python高阶函数和python闭包,Python高阶函数可以接受函数作为参数,...

  • Python高阶函数

    本文要点 1.什么是高阶函数 2.python中有哪些常用的高阶函数 什么是高阶函数? 在了解什么是高阶函数之前,...

  • python——list(map())函数的用法

    版本:python3.7 map()函数## map()是 Python 内置的高阶函数,它接收一个函数 f 和一...

  • Python 高阶函数与匿名函数

    高阶函数 1.map函数 map()是 Python 内置的高阶函数,它接收一个函数 f和一个list,并通过把函...

  • wangyanhua--python2

    基本函数的使用 匿名函数 常用系统高阶函数 高阶函数 常用系统高阶函数 Python递归 安装第三方库 三国小说人...

  • Python函数式介绍一 - 高阶函数

    Python函数式介绍一 - 高阶函数Python函数式介绍二 - 链式调用 最近为了给朋友推广Python函数式...

  • Python高阶函数学习笔记

    python中的高阶函数是指能够接收函数作为参数的函数 python中map()函数map()是 Python 内...

  • 高阶函数(Python)

    什么是高阶函数(Python)? 高阶函数:能接收函数做参数的函数 变量可以指向函数 函数的参数可以接受变量 一个...

  • Python函数和高阶函数

    函数(基础、高阶函数(实参高阶函数、返回值高阶、装饰器)) 1.函数就是实现某一特定功能的代码块 2.定义函数(创...

  • Fluent Python手册(一)

    把函数视为对象:一等函数 把函数视为对象 python函数是对象。 高阶函数 函数式编程的特点之一是使用高阶函数。...

网友评论

    本文标题:Python函数和高阶函数

    本文链接:https://www.haomeiwen.com/subject/izcxqltx.html