python基础知识--函数

  (创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹)

目录

一、函数

1.函数的定义

2.函数的参数 

3.函数的返回值

4.将函数储存在模块 

二、lambda函数和列表的排序 

1.lambda函数

2.列表的排序


一、函数

1.函数的定义

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。

  • 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。

  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。

  • 函数内容以冒号起始,并且缩进。

  • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

def printf():
    print("hello world")
printf()
printf()

hello world
hello world

2.函数的参数 

正常情况下定义的参数需要按顺序传对应的参数;
参数可以设置默认值,调用时不用传这些参数的值
关键字参数,可以用 name=value 的形式调用函数,并且顺序可以换;
传不可变对象 string tuple 数据不能被改变;传可变对象 list dict set 数据可以被改变

def introduct(name):
    print(f"大家好,我是{name}")
introduct("xiaoming")

 大家好,我是xiaoming

3.函数的返回值

可以用 return 返回函数的计算结果
可以用逗号分隔返回多个值,调用时拆包获取各值
#函数的返回
def add(x,y):
    x = int(x)
    y = int(y)
    return x+y
result = add(3,5)
print(result)
print((add("3","5")))

8
8

函数可以具有一个或者一组值,将逻辑“封装”在函数中,会简化整个程序

#函数返回一个字典
students={
     "xiaozhang":{"id":101,"grade":88},
     "xiaowang":{"id":102,"grade":77}
}
def get_student(name):
    if name in students:
        return students[name]
    else:
        return None
print(get_student("xiaozhang"))
print(get_student("xiaoxiao"))

{'id': 101, 'grade': 88}
None

4.将函数储存在模块 

在实际开发中,代码都会放在不同的文件中

模块module是文件,以.py为后缀名,包含类、函数、语句 

举例:

新建一个computer.py文件,在里面编写add、sub、mul、div四个函数,那么computer就是一个模块,里面的四个函数都会被其他文件使用

新建另一个main.py,用如下方法可以引用computer.py代码

  1. import computer:然后用computer.add等调用函数
  2. import computer as cp:给模块起别名,然后用cp.add调用函数
  3. from computer import add,sub:然后用add、sub函数直接使用
  4. from computer import *:可以直接使用add、sub等所有函数
# @File : computer.py
def add(x,y):
    return x+y
def sub(x,y):
    return x-y
def mul(x,y):
    return x*y
def div(x,y):
    return x/y
#调用模块
import computer
print(computer.add(3,5))
from computer import add,sub,mul,div
print(add(3,5))

8
8

二、lambda函数和列表的排序 

1.lambda函数

lambda函数:

称为匿名函数,函数的定义直接使用,不用起名字
又称为一句话函数、逻辑简单到一行代码就能表达逻辑
用于一些简单的、不会重复多次调用的情景

 定义形式:

  1.         lambda 参数:操作(参数)
  2.         定义举例:sum = lambda x,y: x+y
  3.         调用举例:sum(1,2)

使用场景:

既然逻辑能够在一行完成,那直接写逻辑即可,为什么要写成一个函数?
因为有些 python 的有些高级函数,比如 list.sort sorted map reduce 等,它们的调用需要传一个函数作为参数传入

2.列表的排序

列表排序方法 1

        list.sort(key=None, reverse=False)

列表排序方法 2

        new_list = sorted(iterable, key=None, reverse=False)

其中的 key 参数,可以传入一个函数,指定排序的元素,对于这个函数,用 lambda 可以简化代码

举例:对学生数据按成绩排序

sgrades=[(1001,89),(1002,77),(1003,99)]

不可行的方法: sgrades.sort () ,只会按照第一项排序
方法 1 sgrade s .sort( ke y =lambda x:x [1])
        方法2 new_list = sorted( sgrades , key=lambda x:x [1], reverse=True
#按照成绩排序
sgrades=[(1001,89),(1002,77),(1003,99)]
sgrades.sort(key=lambda m:m[1])#sort将每个元素传给lambda
print(sgrades)

 [(1002, 77), (1001, 89), (1003, 99)]

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小周不想卷

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

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

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

打赏作者

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

抵扣说明:

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

余额充值