python def用法_从零学习Python—调用函数def用法(下)

4003f609a24e769d46eff215633efe5d.png

我们先来看看def和字典的用法吧:

def ranks(name, number): ranks = {'name': name, 'rank': number}print(ranks)name = input('what is your name ')number = input('how much is ranked ')ranks(name, number)

580995335586c6f927d9271717a68643.png

代码及结果如上图所示,写的比较简单,应该没有什么地方要解释的。

咱们在上面的例子上再加上一行代码,就可以玩一年了:

while True:def ranks(name, number): ranks = {'name': name, 'rank': number}print(ranks) name = input('what is your name ') number = input('how much is ranked ') ranks(name, number)

1f12b0de04d5e2f2c1488b05a357a0f9.png

这样就进入了while 循环中,我们填入姓名和排名,就能打印出相应的字典了。如果要退出循环,就要用到break语句了,

while True:def ranks(name, number): ranks = {'name': name, 'rank': number}print(ranks) name = input('what is your name ')if name == 'q':print('exit')break number = input('how much is ranked ') ranks(name, number)

43596fc5d070fcde55ca6cb1f02ade38.png

这么我们使用了if+break的用法,代码及结果如上图所示,都算是些常用的用法,知道用法后,要灵活运用。

咱们再来看看def和列表的一些例子,看看它们是怎么一块使用的:

def user(names):for name in names:print(name)user_names = ['av','bv','cv']user(user_names)

8297c358a4369ba296c9cddd27329299.png

这是一个简单的def和列表的运用,如果要得到结果,其实直接给出一个列表,用for循环会更简单,但调用函数def在下次要打印user()会更方便,也有利于代码的维护。

讲到这,大家会不会有个疑问:我也不知道我的的调用函数里的形参写多少好,不能一一对应,到时代码会报错啊。

我反正是有这个疑问的,毕竟我后面想用到它,但是形参我只写了一个,而我实参却有两个,咱们来看看这个错误代码:

69152e8398dbd56f8d9e1cb47cf442e5.png

咱们主要看它报的错,这个也是学习的一个能力,毕竟人人都会犯错,要学会快速的解决问题。

TypeError: names() takes 1 positional argument but 2 were given

大致就是说只有一个形参,却给了2个实参。

好了,不卖乖了,这时我们可以用到‘*’来解决,还是上面的例子:

def names(*name):print(name)names('av','bv')

3e622d131672aae4e974d6fc40ff895d.png

咱们只是在形参前面加了一个星号,就可以解决这个问题了,不管调用语句提供了多少实参,这个形参都将它们统统收入囊中,要记住哦。

讲到这,我们在多学一点,虽然 *形参可以囊括所有的实参,但在python中,先匹配位置实参和关键字实参,再将余下的实参都收集到最后一个形参中。 咱们还是看例子:

def name_number(name,*numbers):print(name)for number in numbers:print(number)name_number('av',1,2,3,4)

521eb6bc1457199dafbb1916377c7829.png

这里我们特意用了字符串加数字以供区分,总那言之,就是在默认情况下,按顺序对应,其它多的实参全都储在了 *形参中。

好了,今天就到这了,大家多多练习吧。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值