第9关:喊出我的名字(1)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

def tree(Height):
    print('Merry Christmas!')
    for i in range(Height):
        print((Height-i)*2*' '
              +'o'+ i*'~x~o')
        print(((Height-i)*2-1)*' '
              +(i*2+1)*'/'+'|'+(i*2+1)*'\\')
tree(4)
tree(8)

在这里插入图片描述
(这之前都是“位置参数”,其实就是位置一个一个对应就好。)

回到这个食堂的故事。经营了一阵子之后,为了吸引更多的人流,你决定给每个顾客免费送上一份甜品绿豆沙,这时候你就可以用到【默认参数】,注意:默认参数必须放在位置参数之后。

(这里就像是点套餐,无论哪份套餐,我打单子的时候,默认送一份绿豆沙)
在这里插入图片描述
在这里插入图片描述
后来呢,盛夏来袭,你觉得卖烧烤是个不错的主意。但问题是每个人点的烤串数量都不同,你也不能限定死数量,这时候【不定长参数】就能派上用场,即不确定传递参数的数量。
它的格式比较特殊,是一个星号*加上参数名,来看下面的例子。

在这里插入图片描述
(‘烤鸡翅’, ‘烤茄子’, ‘烤玉米’),这种数据类型叫做元组(tuple)
元组的写法是把数据放在小括号()中,它的用法和列表用法类似,主要区别在于列表中的元素可以随时修改,但元组中的元素不可更改。
在这里插入图片描述
(其实到这里的时候,我倒是觉得有点像是点单系统,你告诉收银员,你要这个那个,然后收银员输入以后,就打出来单子了。
学习编程的时候,我总觉得很空虚,觉得这时候我学会看懂有什么用,人家提出一个需求,我依旧不会。
但是现在慢慢的,不怎么空虚了,觉得,哦,我不是在编程,而是个收银员,我在输入这个那个,然后就能打出单子来。)

和列表一样,元组是可迭代对象,这意味着我们可以用for循环来遍历它,这时候的代码就可以写成:
在这里插入图片描述
需要注意的是,这时候默认参数也需要放在不定长参数的后面,即dessert=’绿豆沙’要放在*barbeque后面,否则传递的值会对应不上。现在请你重现上面的代码(自己手打哦~),注意参数的顺序,调用函数时可以换成你爱吃的食物。

print()函数本身比较特殊,它在屏幕上显示完相关的文本内容就没了,并不会返回一个值给我们。所以,它返回的是空值(None)。
在自定义函数的时候,我们就可以用return语句规定该函数要返回什么值给我们。带return语句的函数是这样的:
在这里插入图片描述
提醒一下,函数也是可以互相嵌套的,在这个例子中,niduoda()函数就被嵌套在print()函数里。
可能你会觉得在这个例子中,直接用print不就行了吗,为啥还要用return呢?还有,我们前面讲了那么多函数,好像都是省略了return的啊,比如刚讲的深夜食堂函数和神奇宝贝函数:
其实是因为在这些例题中,我们的函数功能都是第一时间把参数打印出来。而在很多时候,当多个函数之间相互配合时,我们并不需要第一时间就将结果打印出来,而是需要将某个返回值先放着,等到需要的时候再做进一步的处理。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
所以更常见的做法是:再定义一个主函数main(),参数调用前两个函数的返回值。老师先给出代码,你可以琢磨一下,主要思考第5行和第6行代码。

在这里插入图片描述
main()函数内部分别调用了face()和body()函数,参数dream_face和dream_body传递给了face()和body()函数的参数name,得到返回值,并打印。看起来有点绕,我们将函数运行的步骤分解,就一目了然了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后需要再强调的是,没有return语句的函数会默认返回None值。点击运行下列代码,并观察结果。
在这里插入图片描述
在这里插入图片描述
此外,return还有一个“副作用”:一旦函数内部遇到return语句,就会停止执行并返回结果。你可以运行下列的代码:在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到,两个变量都叫x,一个在函数外部,一个在函数内部。请你先自己判断一下这段代码的输出结果是什么,再点击运行。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值