Python创建与调用函数

Vevina ·
更新时间:2024-09-20
· 765 次阅读

今天我们来讲Python里的创建与调用函数。

先讲创建函数,创建函数使用def关键字,就是define的缩写。

上代码看看吧:

def say(info): print(info)

这就是一个名叫say的函数,我们来看看这个函数的结构:

def 函数名 (参数列表):
函数体

注意,def创建函数也需要缩进。现在我们说说参数的传递。

函数的参数在定义时可以指定默认值,当函数被调用时,如果没有传入对应的参数值,则使用函数定义时的默认值替代。
可选参数一般都放置在非可选参数的后面,即定义函数时,先给出所有非可选参数,然后再分别列出每个可选参数及对应的默认值。
Python语言同时支持函数按照参数名称方式传递参数。

def 函数名(非可选参数列表, 可选参数 = 默认值):
函数体

刚刚那个例子的info就是一个非可选参数。非可选参数在调用的时候必须给一个值,否则会报错。我们再举个例子:

choice = input('选择1还是2?') def game(choice,win = True): if choice == '1': win = False print('你没赢') if choice == '2': win = True print('你赢了')

执行一下,什么都没发生,对吧。因为函数在没有调用的时候代码块是不会被执行的。所以我们得调用。Python调用函数很简单,就是像这样:

def say(info): print(info) say('fd')

知道怎么调用了吧。其实就是:
函数名(参数)

这里要讲到两个概念,函数上面的那个info叫做形参;调用时这个’fd’叫实参。传递函数就是将实参的值传递到形参。一般是一一对应地传递,比如这样:

def say(info,count): for i in range(int(count)): print(info) say('我很好',5)

好玩吧,我们现在再看看另外两种参数类型:

def a(*d): print(sum(d)) a(3,2,54)

这个是可变参数类型,就是说可以赋多个值给它。我们可以看看它的类型:

def a(*d): print(type(d)) a(3,2,54)

是一个元组,对吧?

我们再看看下一种:

关键字参数,这种参数就是print函数里的end参数,end就叫做关键字参数,我们创一个函数来看看:

def end_(**b): print(b) end_(end = 123)

然后这种的话,它就是一个字典类型,大家也应该看到了打印的结果。

现在我来介绍一个关键字:return。

如果需要返回值,使用保留字return和返回值列表。函数可以没有return语句,函数体结束后会将控制权返回给调用者。

我们举个例子:

def fun(): a = 5 return a fun() print(fun())

看到了吗,return函数返回值,在直接调用的时候并没反应。我们再来看看不返回的结果:

def fun(): a = 5 print(a) fun() print(fun())

第二个是不是None?

我们再讲一个很重要的概念,那就是全局变量与局部变量。

局部变量就是比如这种:

def fun(): a = 45

这个a就是局部变量,当函数调用完,程序就会释放掉函数里的所有局部变量,使得函数内的局部变量无法在外部使用。

def fun(): a = 45 print(a)

报错了吧!

全局变量就是我们以前学的那些变量,都叫全局变量。全局变量可以在整个程序中使用。

那全局变量如果要在函数里使用,就要用关键字global来声明,比如这样:

a = 45 def fun(): global a a = 56 fun() print(a)

a的值就改变了吧。

有些情况,全局变量不用声明即可在函数中用,例:

a = [1,5] def fun(): a.append(5) print(a)

是不是加了?这种特殊情况我也缺乏经验,所以大家多试试就行了。

一般考试会出类似这样迷惑人的题。

a = 45 def fun(): a = 42 print(a)

有比这种更难的,不过我有点忘了…

好了以上就是今天的知识,希望大家记住,这是基础中的基础。创作不易,大家至少关注一下吧。有疑惑的朋友在评论区询问,我会尽力而答。感兴趣的小伙伴,可以加我QQ:3418772261。我们下期再见!


作者:波斯王



调用函数 调用 函数 Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号