文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python基础学习11----函数

2023-01-30 22:16

关注

一.函数的定义

def 函数名(参数列表):
    函数体
    return语句

return语句不写或后边不加任何对象即为return None

二.函数的参数

无参数

def func1():
    print("没有参数")

一个参数

def func1(a):
   return a

多个参数

def func1(a,b,c):
   return a+b+c

必须参数

  必须按照正确顺序和数量传入参数

def func1(name,age,job):
   print("name:%s age:%d job:%s"%(name,age,job))
func1("sfencs",20,"IT")

关键字参数

def func1(name,age,job):
   print("name:%s age:%d job:%s"%(name,age,job))
func1(age=20,name="sfencs",job="IT")

默认参数

默认参数必须放在必须参数的后面

def func1(name,age,job="IT"):
   print("name:%s age:%d job:%s"%(name,age,job))
func1("sfencs",20)
func1("Alan",25,"teacher")

不定长参数

参数带一个星号*

def func1(*args):
    print(args)
func1(1,2,3,"sfencs")#(1, 2, 3, 'sfencs')以元组形式保存

参数带两个星号**

def func1(**kwargs):
    print(args)
func1(age=20,name="sfencs",job="IT")#{'age': 20, 'name': 'sfencs', 'job': 'IT'}以字典形式保存

定义函数的参数时请以必须参数、默认参数、带一个星号的不定长参数、带两个星号的不定长参数的顺序定义形参

三.参数传递

不可变类型

def func1(a):
    a=5
b=10
func1(b)
print(b)#输出为10

可变类型

def func1(list1):
    list1.append("sfencs")
list2=[1,2,3]
func1(list2)
print(list2)#[1, 2, 3, 'sfencs']list2会改变

四.变量作用域

L (Local) 局部作用域
E (Enclosing) 闭包函数外的函数中
G (Global) 全局作用域
B (Built-in) 内建作用域

按照L-->E-->G-->B的顺序查找

内部作用域修改外部作用域变量

global

count=20
def function() :
    global count#不加这句话会报错
    print (count)#20
    count=5
    print(count)#5
function()
print(count)#5

nonlocal 

修改嵌套作用域

def function1() :
    count=20
    def function2():
        nonlocal count
        count=5
        print(count)#5
    function2()
    print(count)#r此时输出为5,若不加nonlocal count则输出为20
function1()

五.递归函数

#斐波那契数列为0,1,1,2,3,5,8,13,21,34.......
def fibon(n):
    if n<=2 :
        return n-1
    return fibon(n-1)+fibon(n-2)
print(fibon(7))#输出数列中第七个数,为8

  

 

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯