栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python-函数(创建、参数),递归函数

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python-函数(创建、参数),递归函数

个人简介 

  • 大家好,我是韩慧腾。一名正在努力学python的大一小白,本文章为初学的笔记,希望各位多多指教。
  • 欢迎点赞+收藏+留言
  • 每一朵乌云背后都有阳光李

一、函数

概述:函数就是执行特定任务以完成特定功能的一段代码

函数的好处:

  1. 复用代码
  2. 隐藏实现细节
  3. 提高可维护性
  4. 提高可读性便于调式

二、函数的创建

# @Author:韩慧腾
# @Time :2022/7/8 10:10
# @File :函数_Demo0.py
# 努力已经来不及了,你得拼命
#函数的定义
def sum(a,b):
    sum=a+b
    return sum;
c=sum(12,23)#函数的调用 通过位置传参数
c1=sum(b=12,a=23)#通过变量名字传参数
print(c)#35

三、函数的参数

  • 形式参数(简称形参):位置在函数定义处
  • 实际参数(简称实参):位置是在函数调用处
  • 函数定义默认值参数:函数定义时,给形参设置默认值,只有与默认值不符的时候才需要传递实参

我们一直用的print函数输出都会换行就是因为print函数定义的时候有个默认参数(end='n'),只要我们使用的时候改变这个默认值就可以达到不换行的效果。 

# @Author:韩慧腾
# @Time :2022/7/9 10:13
# @File :函数_Demo2.py
# 努力已经来不及了,你得拼命
print('hello')
print('wprld')
print('hello',end='t')
print('world')

 

  •  函数的参数定义

1.个数可变的位置参数

定义函数时,可能无法事先确定传递的位置参数的个数时,可以使用可变的位置参数,使用*定义个数可变的位置形参,结果为一个元组

2. 个数可变的关键字形参

定义参数时,无法事先确定传递的关键字实参的个数时,使用可变的关键字形参,使用**定义个数可变的关键字形参,结果为一个字典

# @Author:韩慧腾
# @Time :2022/7/9 10:47
# @File :函数_Demo3.py
# 努力已经来不及了,你得拼命
def fun(*a):
    print(a)
#函数的调用
fun(12)
fun(12,23)
fun(12,23,123)
# @Author:韩慧腾
# @Time :2022/7/9 13:26
# @File :函数_Demo4.py
# 努力已经来不及了,你得拼命
def fun(**a):
    print(a)
#函数的调用
fun(a=10)#{'a': 10}
fun(a=11,b=22,c=33)#{'a': 11, 'b': 22, 'c': 33}

注意:

  1. 个数可变的位置参数和关键字参数只能是一个
  2. 在一个函数的定义过程中,既有个数可变的关键字形参,也有个数可变的位置参数,要求个数可变的位置形参放在个数可变的关键字之前
  3. 如果有多个参数,其中有*,则*后面的就是关键字参数

 四、变量的作用域

作用域就是程序代码能访问该变量的区域,根据变量的有效范围可分为局部变量和全员变量。

五、递归函数

 概述:如果在一个函数的函数体内调用了该函数的本身,这个函数就称为递归函数

递归的组成部分:递归调用和递归终止条件

递归的调用过程:每递归调用一次函数,都会在栈内存分配一个栈帧,每执行完一次函数,都会释放相应的空间

递归的优缺点:优点是思路和代码简单,缺点是占用内存多效率低下。

# @Author:韩慧腾
# @Time :2022/7/9 14:27
# @File :函数_Demo5.py
# 努力已经来不及了,你得拼命
#递归函数
def fac(n):
    if n==1:
        return 1
    else:
        return n*fac(n-1)
#函数的调用
print(fac(6))

六、斐波那契数列

# @Author:韩慧腾
# @Time :2022/7/9 14:37
# @File :函数_Demo6.py
# 努力已经来不及了,你得拼命
def f(n):
    if n==1 or n==2:
        return 1
    else:
        return f(n-1)+f(n-2)
print(f(6))#斐波那契数列的第六位数

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1008974.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号