首页 > 编程语言 >教你创建Python函数信手拈来哦(递归函数)

教你创建Python函数信手拈来哦(递归函数)

时间:2024-07-14 20:01:05浏览次数:14  
标签:__ return 函数 递归函数 Python grade 信手拈来 参数 name

Python中函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段 函数能提高应用的模块性,和代码的重复利用率 Python提供了许多内建函数,比如print()、type()、类型转换函数等等 用户也可以自己创建函数,这被叫做用户自定义函数

一、定义函数

1.创建函数

函数使用def关键字来定义,后跟函数名和圆括号()。圆括号中可以包含一些变量名,这些变量名称为函数的参数。函数的第一行可以选择性地使用文档字符串(docstring),它是对函数做什么的简短描述。函数体是开始和结束于缩进行中的语句块。

在Python中,你可以使用def关键字来定义一个函数。我们以计算圆的面积为例:

def area_circle(r):
    PI = 3.14
    S = PI*r*r
    return S

2. 使用函数

要调用或使用函数,你需要写出函数名,后跟圆括号,并在必要时在圆括号中提供参数。如果函数需要参数,你必须提供与函数定义时数量相匹配的参数,否则你会得到一个错误。

def area_circle(r):
    PI = 3.14
    S = PI*r*r
    return S

if __name__ == '__main__':
    r = 5
    print(area_circle(r))    #输出:78.5

3. 返回值

函数可以使用return语句来返回值。当你调用函数时,你可以使用变量来接收这个返回值。

return S    就是上述函数的返回值

4. 函数参数

函数参数可以是位置参数、关键字参数、默认参数、可变参数(*args)和关键字可变参数(**kwargs)。

  • 位置参数:按照位置顺序传递。
  • 关键字参数:在调用函数时,通过参数名来指定参数。
  • 默认参数:在函数定义中给参数指定默认值,如果调用函数时没有指定这个参数,则使用默认值。
  • 可变参数(*args):允许你传递一个不定长度的参数列表给函数。
  • 关键字可变参数(**kwargs):允许你传递一个不定长度的关键字参数给函数。
1.位置参数:位置参数是函数定义时按照顺序排列的参数,调用函数时必须按照相同的顺序传递相应的值。
def student_grade(name,grade):
    return f"{name}的成绩是{grade}"
    pass


if __name__ == '__main__':
    n = '菜虚坤'
    g = 99
    print(student_grade(n,g))#输出:菜虚坤的成绩是99

2.关键字参数:关键字参数允许你通过参数名来传递值,这样就无需关心参数的顺序了。
def student_grade(name,grade):
    return f"{name}的成绩是{grade}"
    pass


if __name__ == '__main__':

    print(student_grade(grade=98, name="马加七")) #输出:马加七的成绩是98
3.默认参数:默认参数是在函数定义时就给参数指定了一个默认值,如果在调用函数时没有为这些参数传递值,那么就会使用默认值。

def student_grade(name, grade=97):
    return f"{name}的成绩是{grade}"
    pass


if __name__ == '__main__':
    a = '张三'
    b = '李四'
    c = 96
    print(student_grade(a))  # 输出:张三的成绩是97
    print(student_grade(b, c))  # 输出:李四的成绩是96
4.可变参数:*args 允许你将不定数量的位置参数传递给一个函数。在函数内部,args 会被处理成一个元组。

# 计算一组数据的平方和
# *+名字 就是一个 可变参数 数据存放在了元组里
# 一般都是 *args  arguments
def calc(*num_list):
    print(num_list)
    summ = 0
    for i in num_list:
        summ += i ** 2
    return summ
if __name__ == '__main__':
    a = 99
    b = 88
    c = 59
    d = 86
    print(calc(a, b, c, d)) 
    #输出:(99, 88, 59, 86)
    #     28422
 

5.关键字可变参数:**kwargs 允许你将不定数量的关键字参数传递给一个函数。在函数内部,kwargs 会被处理成一个字典。
def personal_info(name, age, gender, *args, city, job, **kwargs):
    print(name, age, gender, args, kwargs, city, job)


if __name__ == '__main__':
    personal_info("李白", 22, "男", 100, city='长安', job='诗人', weigth=70, height=170, address="皇宫")
    #输出:李白 22 男 (100,) {'weigth': 70, 'height': 170, 'address': '皇宫'} 长安 诗人

二、递归函数

在Python中,函数内部可以调用其他函数,如果一个函数在内部调用自身本身,这个函数就是递归函数。递归函数是一种函数通过调用自身来解决问题的编程方法。递归函数必须有一个明确的退出条件(也称为基准情形),否则会导致无限递归,最终引发栈溢出错误。

计算阶乘

def factorial(n):
    # 基准情形
    if n == 0:
        return 1
    # 递归步骤
    else:
        return n * factorial(n - 1)


if __name__ == '__main__':
    print(factorial(6))  # 输出:720

factorial 函数通过调用自身来计算阶乘。当 n 等于 0 时,函数返回 1(因为 0! 定义为 1),这是递归的基准情形。否则,函数返回 n 乘以 n-1 的阶乘,这是递归步骤。

注意事项

  1. 确保有基准情形:递归函数必须有一个或多个基准情形,以防止无限递归。
  2. 理解递归深度:大多数编程语言都有递归深度的限制(即调用栈的大小)。对于深度递归的问题,可能需要考虑使用迭代或其他算法。

敲一遍代码,记忆更深刻!!!!!

标签:__,return,函数,递归函数,Python,grade,信手拈来,参数,name
From: https://blog.csdn.net/2401_84670644/article/details/140388492

相关文章

  • python中缺失值处理——在因子选股中的应用
    ​在因子选股当中,如果直接对整个数据库进行操作,对于股价历史数据,经常出现由于股票退市等造成的缺失值,但是在回测时,如果只用有值的股票,会由于维度不匹配而报错。因此,经常需要把整张数据表中的非空数据取出,进行处理,再填回因子矩阵中。由于基本上每次都会用到,所以本人专门写......
  • python 66 个冷知识 0714
    66个有趣的Python冷知识生成随机浮点数random.uniform(a,b)生成区间[a,b]之间的随机浮点数。反向枚举使用reversed()和enumerate()可以反向枚举列表。单元测试装饰器unittest提供了@unittest.skip装饰器用于跳过测试。动态类型Python是动态类型语言......
  • python 基础10 requests
    requests官方文档:https://requests.readthedocs.io/projects/cn/zh-cn/latest/快速上手https://requests.readthedocs.io/projects/cn/zh-cn/latest/user/quickstart.html安装找到目标路径Scriptspipinstallrequests-ihttps://pipy.douban.com/simple发送请求简洁:im......
  • python-关于返回值return
    一.含义        "return"是编程语言中的一个关键字,通常用于函数或方法的结尾,表示将执行结果返回给调用者。        通俗讲就是一个事物反馈给你的东西。就像你一拍桌子,会返回声音和力的反作用力。二.作用1.负责函数返回值,返回一个参数或数据等。2.退出当......
  • 使用 Python 处理 Lumerical 导出的 .txt 文件(完结)
    使用Python处理Lumerical导出的.txt文件引言正文以,隔开的波长与透射率以\t隔开的波长与透射率引言之前在添加链接描述一文中我们已经介绍了如何将Lumerical仿真中的S参数相关数据导出为.txt文件。这里我们来分享如何使用Python对这些......
  • 用python生成词频云图(python实例二十一)
    目录1.认识Python2.环境与工具2.1python环境2.2VisualStudioCode编译3.词频云图3.1代码构思3.2代码实例3.3运行结果4.总结1.认识PythonPython是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python的设计具有很强的可读性,相比其他语......
  • 【Python】自动化抢票脚本【某麦网】
    1.脚本介绍1.1背景介绍在这个数字化时代,演唱会、体育赛事和各种活动的门票销售往往在线上进行。由于热门活动的高需求和门票的有限供应,抢票成为了一场激烈的竞争。许多粉丝和爱好者经常因为手速不够快或网络延迟而错失购票机会。为了提高抢票的成功率,自动化抢票脚本应运......
  • Python函数(1)--自定义函数与作用域
    函数的定义Python中的函数是一段组织好的、可重复使用的、用来实现单一或相关联功能的代码块。函数能提高应用的模块性,和代码的重复可用性。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被称为用户自定义函数。自定义函数假设,我们现在求一......
  • python 基础 九 Chorme handless
    ChromehandlessChromehandless模式,Google针对Chrome浏览器59版新增的一种模式,可以让你不打开UI界面的情况下使用Chrome浏览器,所以运行效果与Chrome保持完美一致Chromehandless的系统要求1、Chrome版本要求Unix/Linux系统要求chrome>=59Windows系统需要......
  • 01-python基础
    DAY-01课堂笔记为后续的自动化测试打基础python+requests:接口自动化python+selenium:web自动化python+appium:移动端自动化python是解释型语言下方代码的错误不会影响上方代码的执行主流版本:python3基础语法注释:对代码进行解释说明快捷键:ctrl+/单行注释:#......