python中args和kargs得用法总结

比如现在我有一个最简单的加法(Jiafa)函数:

def Jiafa(x, y):

z = x + y

return z

print(Jiafa(1,2))

这个很简单,一看就知道输出等于3。

那下一个问题是,如果我要算不固定个数的数字相加,那怎么来计算呢?

这时,就使用args和*kwarg,就可以帮助我们解决这种问题。

*args:可以理解为只有一列的表格,长度不固定。

**kwargs:可以理解为字典,长度也不固定。

首先,args和kwarg不是必须成对出现,也不是必须叫这个名字,也可以叫x和**y。写成这样,只是一种约定俗成,比如给别人讲故事:从前有个张三和李四……大家一听就知道你要说什么了,而不能说从前有个马七狗八,大家虽然也能听懂,但总是不太好理解。

先说args的作用,还是开篇的案例,我们要算不定长的加法,就可以用args来定义了,当然也可以叫x,y。

def Jiafa(*args):

sum = 0

for i in args:

sum = sum + i

print(sum)

Jiafa(1, 3, 5)

Jiafa(2, 4, 6, 8, )

输出结果,9和20。这个案例很简单,用*args定义就可以引入,相当于定义了不定长度的函数,然后在程序中就可以多次使用。

**kwargs的字典呢?先看一下普通的字典,用一对大括号{}就可以创建字典,比如下面3行程序,就可以编一个字典的程序:

dict = {"system": "系统", "China": "中国", "link": "联接"}

x = input("请输入一个英文单词:")

print(dict.get(x, "本字典里没找到!"))

如果输入正确,会得到答案,否则会显示没找到。

在这个程序里,dict = {"system": "系统", "China": "中国", "link": "联接"}创建了三对“键和值”(key和value),比如“system”是key,“系统”是key对应的值,也叫键值。

还可以写一个测试单词的小软件。

dict = {"system": "系统", "China": "中国", "link": "联接"}

通过Key找value的语句:

y = input("请输入China的中文意思:")

if dict[‘China‘] == y:

print("恭喜你,答对了!")

通过value找Key的语句:

z = input("请输入“系统”的英文单词:")

if list(dict.keys())[list(dict.values()).index("系统")] == z:

print("恭喜你,答对了!")

现在问题来了,如果开始不知道字典里都有哪些内容,需要在程序运程中才知道怎么办?这个时候就可以用kwargs来定义了。我们先用kwargs来定义一个函数,函数内容先都不用写,再看看下面的小程序:

def dict(**kwargs):

return kwargs

mydict = dict(system="系统", China="中国", link="联接")

x = input("请输入单词:")

if x in mydict.keys():

print("中文意思:", mydict[x])

else:

print("抱歉,没找到。")

用字典也可以达成这样的功能,使用in……keys(),就是判断这个key是不是存在,如果存在就返回它的值。 同样,用**kwargs传递数据的功能,还可以设计一个用户登录的程序:

def dict(**kwargs):

return kwargs

userdict = dict(user1="1234", user2="5678")

x = input("请输入用户名:")

if x in userdict.keys():

y = input("请输入密码:")

if userdict[x] == y:

print("完全正确")

else:

print("密码错误!")

else:

print("用户不存在!")

以上的功能,都是能表达出args和*kwarg的功能的最精减代码,大家运动一下会更有助于理解。希望大家学会初步的功能,共同进步,加油!

同时,也向看到本文的高手们请教一个问题,为什么直接定义字典,不能用dict = {system= "系统", China= "中国", link= "联接"},非要用dict = {"system": "系统", "China": "中国", "link": "联接"}呢?有什么区别呢?

作者:万能的老J
链接:https://www.jianshu.com/p/0d5dfd40d518
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

原文地址:https://www.cnblogs.com/chaojiyingxiong/p/9223754.html

时间: 2024-10-22 06:36:10

python中args和kargs得用法总结的相关文章

大话Python中*args和**kargs的使用

对于初学者来说,看到*args和**kargs就头大,到底它们有何用处,怎么使用?这篇文章将为你揭开可变参数的神秘面纱 1.*args 实质就是将函数传入的参数,存储在元组类型的变量args当中 def fun_var_args(farg, *args): print "arg:", farg for value in args: print "other arg:", value fun_var_args(1, "two", 3) arg: 1

Python中*args 和**kwargs的用法

from:http://blog.csdn.net/chenjinyu_tang/article/details/8136841 好久没有学习python了,应为工作的需要,再次拾起python,唤起记忆. 当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值. 还是直接来代码吧,废话少说 [python] view plaincopyprint? def fun_var_args(farg, *args): print "arg:&

python基础-python中*args和**kwargs的用法

当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值 *args 可以容纳多个变量组成的list 1 def test2(name,age,gender): 2 print(name) 3 print(age) 4 print(gender) 5 6 def test1(*args,**kwargs): 7 test2(*args,**kwargs) 8 9 test1('alex', 18, 'male') #这三个参数,全部传给了

FAQ:Python中*args和**agrs的区别

python提供了两种特别的方法来定义函数的参数: 1. 位置参数 *args,  把参数收集到一个元组中,作为变量args   >>>def show_args(*args):          #定义函数 print args >>>show_agrs("hello", "world")      #调用函数 输出:("hello","world") 2. 关键字参数 **kwargs,

python中enumerate()函数用法

python中enumerate()函数用法 先出一个题目:1.有一 list= [1, 2, 3, 4, 5, 6]  请打印输出:0, 1 1, 2 2, 3 3, 4 4, 5 5, 6 打印输出, 2.将 list 倒序成 [6, 5, 4, 3, 2, 1] 3.将a 中的偶数挑出 *2 ,结果为 [4, 8, 12] 这个例子用到了python中enumerate的用法.顺便说一下enumerate在for循环中得到计数的用法,enumerate参数为可遍历的变量,如 字符串,列表等

Python中logging模块的基本用法

在 PyCon 2018 上,Mario Corchero 介绍了在开发过程中如何更方便轻松地记录日志的流程. 整个演讲的内容包括: 为什么日志记录非常重要 日志记录的流程是怎样的 怎样来进行日志记录 怎样进行日志记录相关配置 日志记录使用常见误区 下面我们来梳理一下整个演讲的过程,其实其核心就是介绍了 logging 模块的使用方法和一些配置. 日志记录的重要性 在开发过程中,如果程序运行出现了问题,我们是可以使用我们自己的 Debug 工具来检测到到底是哪一步出现了问题,如果出现了问题的话,

python 中*args 和 **kwargs

简单的可以理解为python 中给函数传递的可变参数,args 是 列表的形式.kwargs 是 key,value的形式,也就是python 中的字典. *args 必须出现在**kwargs 的前边,否则会抛异常. 1 def test(*args, **kwargs): 2 print args 3 print kwargs 1 if __name__ == '__main__': 2 print '---test 1---' 3 test(1, 2, 3) 4 print '---tes

python中enumerate()的用法

先出一个题目:1.有一 list= [1, 2, 3, 4, 5, 6]  请打印输出:0, 1 1, 2 2, 3 3, 4 4, 5 5, 6 打印输出, 2.将 list 倒序成 [6, 5, 4, 3, 2, 1] 3.将a 中的偶数挑出 *2 ,结果为 [4, 8, 12] 这个例子用到了python中enumerate的用法.顺便说一下enumerate在for循环中得到计数的用法,enumerate参数为可遍历的变量,如 字符串,列表等: 返回值为enumerate类. 示例代码如

python中map()和dict()的用法

map()用法 map()是python的内置函数,会根据提供的函数对指定序列做映射. 语法: map(func, iter, ...) 其中func为一个功能函数,iter表示可迭代参数序列.map()将把func作用于参数列表的每个元素上,并返回一个新的list列表. def square(item: int)->int: return item*item a = [1, 2, 3, 4] b = map(square, a) print(list(b)) 以上将输出[1, 4, 9, 16