python 函数,*argv和**kw的区别

本文深入解析了函数的概念,强调了其在代码复用和模块化设计中的重要作用。详细对比了*argv和**kw两种特殊参数的使用场景和转换机制,通过具体示例展示了如何在Python中运用这两种参数来传递不定数量的参数。

1.函数(function)是组织好的,可以重复利用的,用来实现单一,或者关联功能的代码段。
2.函数能提高应用的模块性和代码的重复利用率。

相同点:两个参数必须为函数定义中参数列表中的排名最后的参数
不同点:
1.*argv代表该参数位置可以放置任意个数的数据,最终都会转化成元祖数据类型在函数体内处理
2.**kw代表该参数位置可以放置k=v格式的数据,最终都会转化成字典类型在函数体内处理

def student(name,**kw):
    print('学生姓名:%s'%name)
    print('考试成绩:{0}'.format(kw))
    print('=======================')


student('张凯阳')
student('张凯阳',score1=90,score2=50,score3=60)

scores={'scol1':50,'scol2':80,'scol3':50}
student('张',**scores)

在这里插入图片描述

启动 IPython 内核时发生错误 错误: Traceback (most recent call last): File "D:\Coding\IDE\Anaconda\Lib\site‑packages\spyder\plugins\ipythonconsole\widgets\main_widget.py", line 2142, in create_kernel_manager_and_kernel_client kernel_manager.start_kernel(stderr=stderr_handle, File "D:\Coding\IDE\Anaconda\Lib\site‑packages\jupyter_core\utils\__init__.py", line 165, in wrapped return loop.run_until_complete(inner) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\Coding\IDE\Anaconda\Lib\asyncio\base_events.py", line 687, in run_until_complete return future.result() ^^^^^^^^^^^^^^^ File "D:\Coding\IDE\Anaconda\Lib\site‑packages\jupyter_client\manager.py", line 96, in wrapper raise e File "D:\Coding\IDE\Anaconda\Lib\site‑packages\jupyter_client\manager.py", line 87, in wrapper out = await method(self, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\Coding\IDE\Anaconda\Lib\site‑packages\jupyter_client\manager.py", line 435, in _async_start_kernel kernel_cmd, kw = await self._async_pre_start_kernel(**kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\Coding\IDE\Anaconda\Lib\site‑packages\jupyter_client\manager.py", line 400, in _async_pre_start_kernel kw = await self.provisioner.pre_launch(**kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\Coding\IDE\Anaconda\Lib\site‑packages\jupyter_client\provisioning\local_provisioner.py", line 198, in pre_launch kernel_cmd = km.format_kernel_cmd( ^^^^^^^^^^^^^^^^^^^^^ File "D:\Coding\IDE\Anaconda\Lib\site‑packages\jupyter_client\manager.py", line 307, in format_kernel_cmd cmd = self.kernel_spec.argv + extra_arguments ^^^^^^^^^^^^^^^^^^^^^ File "D:\Coding\IDE\Anaconda\Lib\site‑packages\spyder\plugins\ipythonconsole\utils\kernelspec.py", line 107, in argv get_conda_activation_script(), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\Coding\IDE\Anaconda\Lib\site‑packages\spyder\utils\conda.py", line 95, in get_conda_activation_script if osp.basename(exe).startswith('micromamba'): ^^^^^^^^^^^^^^^^^ File "", line 270, in basename File "", line 241,
最新发布
04-19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值