从零学习Python—调用函数def用法(上)

今天咱们继续学习新一课,调用函数 def 的用法,咱们先来看例子:


def name():
print('xiao xin')
name()
name()

def 的用法规则就是这样,小括号不能省,小括号里可以有内容也可以没有内容,这里我们稍候代入例子来讲,后面还要接冒号,后面的代码就是调用的代码,咱们只用输入 name(),就可以调用上面的代码了。

就是像是收纳箱一样,咱们分类了的东西,放入到了一个name()的箱子里,咱们要用到它时,直接输入箱子的名字name(),就能找出里的东西了。

好了,咱们在这个简单的例子上加一点东西,让它丰富起来:

def name(you):
print(you.title()+' it is time to go home')
name('xiao xin')

这里的you叫作形参,’xiao xin’则为实参,这里实参替换了形参,打印出了结果,这里的实参可以换成任意其它的值,也可以无限次的调用。

不知道有没有把大家绕晕呢?反正我当时学到这里,我一下子就联想到了之前学到的input()了,毕竟机器不与人互动,那就太没意思了,于是我直接修改了一条代码,就得到了我想要的结果:

def name(you):
print(you.title()+' it is time to go home')
name(input('you name'))

上图是代码和结果,我在这里提到这个事,是希望大家把之前讲过的东西拿出来用用,填鸭式的学习很呆,也会慢慢丧失兴趣。

实际上的使用中可能包含多个形参,因此函数调用中也可能包含多个实参。向函数传递实参的方式很多,可使用位置实参,这要求实参的顺序与形参的顺序相同;也可使用关键字实参,其中每个实参都由变量名和值组成;还可使用列表和字典。


我们先来看看位置实参:


def parents(left,right):
print('on the left is '+left)
print('\non the right is '+right)
parents('father','mother')

其实就是一一对应,顺序不能有错,中间用逗句隔开,其它的都和开头一样,没有太多难点。

我们再来看看关键字实参,用它就不用考虑顺序的问题:

def parents(left,right):
print('on the left is '+left)
print('\non the right is '+right)
parents(right='mother',left='father')

有点像赋值的感觉,在关键字实参中一定要准确的知道形参名,不然就会报错了。

如果从最开始就知道其中一个形参对应的实参,我们还可以把它简化一下:

def parents(left,right='mother'):
print('on the left is '+left)
print('\non the right is '+right)
parents('father')

这里要注意的是,要按照顺序,如果我们把 def parents(left,right=’mother’)

改成  def parents(right=’mother’,left)    ,运行代码就会发现出错,当然我们也可以用关键字来进行指定。

调用函数def 也可以和if 结合使用,现在我们的名字中有个字的,也有三个字的,我们利用def 来试着写一写:

def name(first_name,last_name,middle_name=''):
if middle_name:
name = first_name +' '+ middle_name + ' '+last_name
print(name)
else:
name = first_name+' '+last_name
print(name)
name('yuan','xin','xiao')
name('xiao','xin')

这里有两个细节:1.我没有用到关键字实参,所以我把middle_name放在了最后

                           2.middle_name=’ ‘    给了它一个字符串

                           3.middle_name如果不为空,则为True

 

其它的应该都好理解了,我就不细讲了。

下面还有def与while、列表以及字典的一块用法,我们下节再讲。

你或许想:《去原作者写文章的地方

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论