Python函数小知识

目录

一、函数的定义和调用

二、函数参数

三、函数作用域

四、递归函数和匿名函数

一、函数的定义和调用

def 函数名(参数): 自定义函数可以分为有参函数和无参函数 。

函数的作用: 在Python中定义函数可以提高代码的复用率,避免重复的代码,可以减少代码量调用函数。

如下例子:

python 复制代码
"""
def 函数名(参数):
    函数体     #定义在函数体里面的代码不会自动执行,需要调用对应函数执行对应函数体
 调用形式:函数名加括号
    return 表达式
"""
def food():
    print('苹果,香蕉,葡萄')
food()  #调用形式:函数名加括号

运行结果:

return:返回值,结束函数,选择性地返回一个值给调用方。

print与return的区别:

print打印的数据不能被变量接收,return返回的值能被变量接收。

如下例子:

python 复制代码
def food():
    print('苹果,香蕉,葡萄')
    return '水果'
print(food())  #调用形式:函数名加括号

结果如下:

二、函数参数

必备参数: 定义时的参数与调用时的参数数量必须一一对应 参数与参数之间用逗号隔开。

默认参数 可以给参数赋一个默认值 。注意:默认参数要放在必备参数的后面。

不定长参数: 任何没有被定义的参数都会被不定长参数接收 ,定义不定长参数时要加上*号,使用的时候不用加 。

注意:参数的顺序:必备参数->默认参数->不定长参数。

例子:

python 复制代码
def food(x,y=10,*args,**kwargs):
    print(x)
    print(y)
    print(args)
    print(kwargs)
food("水果",4,"香蕉","苹果",'榴莲','西瓜',a=4)  

结果如下:

三、函数作用域

全局作用域:函数内部可以访问外部的变量,但是不能直接进行修改 。

定义在py文件中函数外面的变量称之为全局变量。

global关键字是全局变量声明,只有声明之后函数内部才可以修改全局变量。

局部作用域:在嵌套的函数中,内层函数可以访问外层函数的变量,但是不能直接修改。

nonlocal关键字是全局变量声明,只有声明之后函数内部才可以修改全局变量。

四、递归函数和匿名函数

递归函数

如果在一个函数的内部调用了该函数本身,那么这个函数就是递归函数。

递归函数也需要一个结束条件,否则超出递归深度就会报错。

如下例子:

python 复制代码
def shuzi(n):
    if n <= 1:
        return 1
    else:
        return n * shuzi(n - 1)  # 返回了函数自身-> 5 * 4 * 3 * 2 * 1
print(shuzi(5))

结果如下:

匿名函数

匿名函数就是没有函数名的函数,也就是不再使用def关键字定义的函数。

如果要声明匿名函数,则需要使用lambda关键字。

需要注意的是匿名函数能接受任何数量的参数但是只能返回一个表达式的值。

如下例子:

python 复制代码
li = ['苹果','西瓜','香蕉']  # 以列表中的元素长度进行排序
li.sort()  # 字符串会根据首字母的拼音进行排序
print(li)
li.sort(key= lambda x : len(x),reverse=True)  # 使用lambda关键字设置了排序要求,以列表中的字符串长度进行排序
print(li)

结果如下:

相关推荐
Marst Code11 分钟前
(Django)初步使用
后端·python·django
985小水博一枚呀28 分钟前
【对于Python爬虫的理解】数据挖掘、信息聚合、价格监控、新闻爬取等,附代码。
爬虫·python·深度学习·数据挖掘
立秋678940 分钟前
Python的defaultdict详解
服务器·windows·python
wjs20241 小时前
XSLT 实例:掌握 XML 转换的艺术
开发语言
萧鼎1 小时前
Python第三方库选择与使用陷阱避免
开发语言·python
安冬的码畜日常1 小时前
【D3.js in Action 3 精译_029】3.5 给 D3 条形图加注图表标签(上)
开发语言·前端·javascript·信息可视化·数据可视化·d3.js
一颗星星辰1 小时前
C语言 | 第十章 | 函数 作用域
c语言·开发语言
lxp1997411 小时前
php函数积累
开发语言·php
科技资讯早知道1 小时前
java计算机毕设课设—坦克大战游戏
java·开发语言·游戏·毕业设计·课程设计·毕设
白拾1 小时前
使用Conda管理python环境的指南
开发语言·python·conda