Python基础知识学习-第6天

12-函数与Lambda表达式

1 在定义参数的时候可以在参数前加上一个星号,表明这里面可以接受任意数量的序列(相当于一个元祖)

def avg(*scores):
    return sum(scores) / len(scores)

result = avg(98, 88, 76, 66, 5)
print(result)
>>>66.6

如果是双星号,则可以接受一个字典

def display(**employee):
    print(employee)

display(name = 'petter', age = 20, job = 'dev')
>>>{'name': 'petter', 'age': 20, 'job': 'dev'}

如果直接传入一个创建好的字典,则会报错.可以在变量名前加上两个星号.

emp = {'name' : 'peter', 'age' : 20, 'job' : 'dev'}
def display(**employee):
    print(employee)

display(**emp)
>>>{'name': 'peter', 'age': 20, 'job': 'dev'}

2 lambda函数
lambda函数也叫匿名函数,即,函数没有具体的名称。先看一个例子:

g = lambda x : x + 1
print(g(4))
>>>5

相当于

def g(x):
    return x + 1

print(g(4))
>>>5

语法–lambda 参数1,…:函数体

13-函数应用与工具

1 给定一个列表,找出其中的偶数。

# 1.使用循环
l = list(range(1, 21))
res = []
for n in l:
    if n % 2 == 0:
        res.append(n)
print(res)
>>>[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
# 2.使用推导
l = list(range(1, 21))
res = [x for x in l if x % 2 == 0]
print(res)
>>>[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
l = list(range(1, 21))
def even_number(x):
    return x % 2 == 0
res = list(filter(even_number, l))
print(res)
>>>[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

如果不将filter之后的对象转化为list列表的话,无法直接打印。此时可以:

l = list(range(1, 21))
def even_number(x):
    return x % 2 == 0
res = filter(even_number, l)
for i in res:
    print(i, end = ' ')
>>>2 4 6 8 10 12 14 16 18 20 
l = list(range(1, 21))
res = list(filter(lambda n : n % 2 == 0, l))
print(res)
>>>[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

2 用字典模拟switch功能

def hello_chinese(name):
    print('你好,', name)

def hello_english(name):
    print('hello,', name)

def hello_japanese(name):
    print('こんにちは', name)

operation = {
    'c':hello_chinese,
    'e':hello_english,
    'j':hello_japanese,
    'r':lambda name : print('Здравствыйте,', name)
}
while True:
    name = input('请输入名字:')
    if name == 'stop':
        break
    language = input('请输入语言:\n c ==> 中文\n e ==> 英文\n j ==> 日文\n r ==> 俄文\n')
    operation.get(language, hello_chinese)(name)

将函数名当成参数传递:

def hello_chinese(name):
    print('你好,', name)

def hello_english(name):
    print('hello,', name)

def hello_japanese(name):
    print('こんにちは', name)

def hello(action, name):
    action(name)

hello(hello_chinese, 'tom')
>>>你好, tom
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。在编写C程序时,需要注意变量的声明和定义、指针的使用、内存的分配与释放等问题。C语言中常用的数据结构包括: 1. 数组:一种存储同类型数据的结构,可以进行索引访问和修改。 2. 链表:一种存储不同类型数据的结构,每个节点包含数据和指向下一个节点的指针。 3. 栈:一种后进先出(LIFO)的数据结构,可以通过压入(push)和弹出(pop)操作进行数据的存储和取出。 4. 队列:一种先进先出(FIFO)的数据结构,可以通过入队(enqueue)和出队(dequeue)操作进行数据的存储和取出。 5. 树:一种存储具有父子关系的数据结构,可以通过中序遍历、前序遍历和后序遍历等方式进行数据的访问和修改。 6. 图:一种存储具有节点和边关系的数据结构,可以通过广度优先搜索、深度优先搜索等方式进行数据的访问和修改。 这些数据结构在C语言中都有相应的实现方式,可以应用于各种不同的场景。C语言中的各种数据结构都有其优缺点,下面列举一些常见的数据结构的优缺点: 数组: 优点:访问和修改元素的速度非常快,适用于需要频繁读取和修改数据的场合。 缺点:数组的长度是固定的,不适合存储大小不固定的动态数据,另外数组在内存中是连续分配的,当数组较大时可能会导致内存碎片化。 链表: 优点:可以方便地插入和删除元素,适用于需要频繁插入和删除数据的场合。 缺点:访问和修改元素的速度相对较慢,因为需要遍历链表找到指定的节点。 栈: 优点:后进先出(LIFO)的特性使得栈在处理递归和括号匹配等问题时非常方便。 缺点:栈的空间有限,当数据量较大时可能会导致栈溢出。 队列: 优点:先进先出(FIFO)的特性使得
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
学习Python基础知识可以按以下顺序进行: 1. 数据类型:了解Python中的基本数据类型,如整数、浮点数、字符串、列表、元组、字典等,以及它们的特点和用法。 2. 变量和运算符:学习如何定义变量、赋值和使用运算符进行基本的数学运算,包括算术运算、比较运算和逻辑运算。 3. 控制流程:掌握条件语句(如if-elif-else)、循环语句(如for和while循环)以及相关的控制流程,可以实现程序的条件判断和循环执行。 4. 函数和模块:学习如何定义和调用函数,了解函数的参数传递和返回值的使用。同时,了解如何使用Python的模块,以及如何导入和使用第三方库。 5. 文件操作:学习如何打开、读取和写入文件,了解文件操作的基本方法以及异常处理的技巧。 6. 异常处理:掌握如何处理程序中可能发生的异常情况,以确保程序的稳定性和鲁棒性。 7. 面向对象编程:了解面向对象编程的基本概念,如类、对象、继承、多态等,并学习如何使用面向对象的思想解决实际问题。 8. 正则表达式:学习如何使用正则表达式进行字符串的模式匹配和处理,以及常用的正则表达式语法。 9. 数据结构和算法:了解常用的数据结构,如栈、队列、链表、树等,以及常见的算法,如排序、查找等,可以提高程序的效率和性能。 以上是一个基础知识学习的顺序排序,但在实际学习中,可以根据个人兴趣和需求进行灵活调整。同时,通过实践编程和项目实战,可以更好地巩固和应用所学知识。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值