python函数定义语法总结

见下面代码及注释:

 1 def calc(value):
 2     sum=0
 3     for m in value:
 4         sum=sum+m
 5     return  sum
 6
 7 data=[1,2,3,4,5,6,7,8,9,10]
 8 print(str(calc(data)))
 9 print(calc([1,2,3]))
10 print(calc((1,2,3)))
11 #print(calc(1,2,3))  这句会报错,不过可以用可变参数改造函数calc
12
13 def calc1(*value):
14     sum=0
15     for m in value:
16         sum=sum+m
17     return  sum
18 #函数calc1为可变参数
19 print(calc1(1,2,3))
20 print(calc1())  #甚至还可以零参数调用
21
22 #如果有一个list或者tuple要调用可变参数怎么搞
23 nums=[1,2,3]
24 #print(calc1(nums)) 这句报错: unsupported operand type(s) for +: ‘int‘ and ‘list‘
25 #像下面这样调用就可以
26 print(calc1(nums[0],nums[1],nums[2]))
27 #也可以这样调用,表示把nums这个list的所有元素做为一个可变参数传递进去
28 print(calc1(*nums))
29
30 #下面演示关键字参数
31 #关键字参数允许你传入0个或任意个含参数名的参数,
32 # 这些关键字参数在内部自动装为一个dict
33 def person(name,age,**kw):
34     print(‘name:‘,name,‘age:‘,age,‘other:‘,kw)
35
36 print(person(‘刘小勇‘,30))
37 print(person(‘刘小勇‘,35,city=‘北京‘,job=‘软件工程师‘))
38
39 data1={‘city‘:‘北京‘,‘job‘:‘卖菜‘}
40 print(person(‘刘小能‘,45,city=data1[‘city‘],job=data1[‘job‘]))
41 print(person(‘刘小勇‘,45,**data1))
42
43 #命名关键字参数
44 def person1(name,age,*,city,job):
45     print(name,age,city,job)
46
47 print(person1("刘小勇",45,city="武汉",job="总统"))
48 #命令关键字参数只接受city,job,下面的调用因此会报错
49 #person1() got an unexpected keyword argument ‘bby‘
50 #print(person1("lxy",32,bby="kkk",job2="kkk2"))
51
52 #命名关键勃参数还可以有缺省值
53 def person2(name,age,*,city="wuhan",job):
54     print(name,age,city,job)
55
56 print(person2(‘xly2‘,23,job=‘222‘))
57
58 #参数组合
59 #5种参数组合,必须按以下列顺序组合
60 #必选参数、默认参数、可变参数/命名关键字参数和关键字参数
61
62 def f1(a,b,c=0,*args,**kw):
63     print(‘a=‘,a,‘b=‘,b,‘c=‘,c,‘args=‘,args,‘kw=‘,kw)
64 def f2(a,b,c=0,*,d,**kw):
65     print(‘a=‘,a,‘b=‘,b,‘c=‘,c,‘d=‘,d,‘kw=‘,kw)
66
67 print(f1(1,2))
68 print(f1(1,2,c=3))
69 print(f1(1,2,3,‘a‘,‘b‘))
70 print(f1(1,2,3,‘a‘,‘b‘,x=33))
71 print(f2(1,2,d=99,ext=None))
72
73 #你甚至可以通过一个tuple和dict调用上面的函数
74 args=(1,2,3,4)
75 kw={‘d‘:99,‘x‘:‘#‘}
76 print(f1(*args,**kw))
77
78 args=(1,2,3)
79 kw={‘d‘:88,‘x‘:‘#‘}
80 print(f2(*args,**kw))
81 #所以,对于任意函数,都可以通过类似fun(*args,**kw)的形式调用它,无论它的参数
82 #是如何定义的
83
84 #几点总结
85 #默认参数一定要用不可变的对象
86 #*args是可变参数,接受一个tuple或list
87 #**kw是关键字参数,接受一个dict
def calc(value):    sum=0for m in value:        sum=sum+m    return  sum

data=[1,2,3,4,5,6,7,8,9,10]print(str(calc(data)))print(calc([1,2,3]))print(calc((1,2,3)))#print(calc(1,2,3))  这句会报错,不过可以用可变参数改造函数calc

def calc1(*value):    sum=0for m in value:        sum=sum+m    return  sum#函数calc1为可变参数print(calc1(1,2,3))print(calc1())  #甚至还可以零参数调用

#如果有一个list或者tuple要调用可变参数怎么搞nums=[1,2,3]#print(calc1(nums)) 这句报错: unsupported operand type(s) for +: ‘int‘ and ‘list‘#像下面这样调用就可以print(calc1(nums[0],nums[1],nums[2]))#也可以这样调用,表示把nums这个list的所有元素做为一个可变参数传递进去print(calc1(*nums))

#下面演示关键字参数#关键字参数允许你传入0个或任意个含参数名的参数,# 这些关键字参数在内部自动装为一个dictdef person(name,age,**kw):    print(‘name:‘,name,‘age:‘,age,‘other:‘,kw)

print(person(‘刘小勇‘,30))print(person(‘刘小勇‘,35,city=‘北京‘,job=‘软件工程师‘))

data1={‘city‘:‘北京‘,‘job‘:‘卖菜‘}print(person(‘刘小能‘,45,city=data1[‘city‘],job=data1[‘job‘]))print(person(‘刘小勇‘,45,**data1))

#命名关键字参数def person1(name,age,*,city,job):    print(name,age,city,job)

print(person1("刘小勇",45,city="武汉",job="总统"))#命令关键字参数只接受city,job,下面的调用因此会报错#person1() got an unexpected keyword argument ‘bby‘#print(person1("lxy",32,bby="kkk",job2="kkk2"))

#命名关键勃参数还可以有缺省值def person2(name,age,*,city="wuhan",job):    print(name,age,city,job)

print(person2(‘xly2‘,23,job=‘222‘))

#参数组合#5种参数组合,必须按以下列顺序组合#必选参数、默认参数、可变参数/命名关键字参数和关键字参数

def f1(a,b,c=0,*args,**kw):    print(‘a=‘,a,‘b=‘,b,‘c=‘,c,‘args=‘,args,‘kw=‘,kw)def f2(a,b,c=0,*,d,**kw):    print(‘a=‘,a,‘b=‘,b,‘c=‘,c,‘d=‘,d,‘kw=‘,kw)

print(f1(1,2))print(f1(1,2,c=3))print(f1(1,2,3,‘a‘,‘b‘))print(f1(1,2,3,‘a‘,‘b‘,x=33))print(f2(1,2,d=99,ext=None))

#你甚至可以通过一个tuple和dict调用上面的函数args=(1,2,3,4)kw={‘d‘:99,‘x‘:‘#‘}print(f1(*args,**kw))

args=(1,2,3)kw={‘d‘:88,‘x‘:‘#‘}print(f2(*args,**kw))#所以,对于任意函数,都可以通过类似fun(*args,**kw)的形式调用它,无论它的参数#是如何定义的

#几点总结#默认参数一定要用不可变的对象#*args是可变参数,接受一个tuple或list#**kw是关键字参数,接受一个dict

原文地址:https://www.cnblogs.com/hackpig/p/8146310.html

时间: 2024-10-08 08:03:46

python函数定义语法总结的相关文章

初识python 函数(定义,传参,返回值)

python基础(二): 菜鸟教程基础知识讲解的非常全面,内容选择我认为的重点输出一遍 函数: 定义一个函数: 你可以定义一个由自己想要功能的函数,以下是简单的规则: def fun(arg): pass return arg # 函数调用语法 fun(arg) arg:argument,参数(也叫prarmeter) ,任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数. def:define,定义,创建函数 ,函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()

python 函数定义和调用

一.python 函数的分类: 1.内置函数 2.标准库函数 3.第三方函数 4.用户自定义函数 函数定义和调用 在使用函数之前必须先定义函数,执行def时,会创建一个函数对象并绑定到函数名变量上,定义函数的语法格式如下: def 函数名(形参列表):    //由零条到多条可执行语句组成的函数    [return [返回值]] 示例: 二.返回值: return 返回值要点: 1.如果函数体中包含return 语句,则结束函数执行并返回值: 2.如果函数体中包含return语句,则返回Non

python 函数定义

python 函数 ---------------- ---------------- ---------------- ---------------- def test(x): print(x) test(1) # 需要一 一对应多一个不行,少一个也不行 ---------------- ---------------- ---------------- ---------------- def test(x,*y):  #x 表示形参  *y表示可变参数 print(x) print(y)

python函数定义

刚学用Python的时候,特别是看一些库的源码时,经常会看到func(*args, **kwargs)这样的函数定义,这个*和**让人有点费解.其实只要把函数参数定义搞清楚了,就不难理解了. 先说说函数定义,我们都知道,下面的代码定义了一个函数funcA def funcA():  pass    显然,函数funcA没有参数(同时啥也不干:D). 下面这个函数funcB就有两个参数了,def funcB(a, b):  print a  print b调用的时候,我们需要使用函数名,加上圆括号

Python学习-10.Python函数定义(二)

在Python中定义函数的时候,可以使用参数默认值的方式定义函数 例子: 1 def welcome(who,state='is',action='talking'): 2 print(who,state,action) 调用函数: 1 welcome('Tom') 输出Tom is talking 1 welcome('Tom','was') 输出Tom was talking 1 welcome('Tom',action='sleeping') 输出Tom is sleeping 可见,在参

python函数定义和使用

python函数的定义与使用1.python使用关键字def进行函数的定义,其中标准的函数定义格式为:def(参数列表): 函数体 return 返回参数列表 2.函数在敌营变量作用返回(作用域):全局变量(global n)和局部变量 3.表白代码:#爱心表达函数 def my_heart(a,b): print("\n".join(["".join([(a[(x-y) % len(a)] \ if ((x*0.04)**2+(0.1*y)**2-1)**3-(x

python函数定义与使用+返回值简解

一个函数相当于一个功能块,当要使用时,可以直接调用,避免了垒代码. 函数定义和使用: 1 #函数 2 def mail(): #定义函数 3 n = 123 #函数体 4 n += 1 5 print(n) 6 mail() #加括号表示执行函数 7 f = mail #函数名,赋值结果一样 8 f() 9 10 #执行结果: 11 124 12 124 def:表示函数的关键字(解析器解析到def,识别为定义函数,默认不执行) 函数名:函数的名称,日后根据函数名调用函数 函数体:函数中进行一系

Python学习-9.Python函数定义

先定义一个最基本的函数作为例子: 1 def Print(msg): 2 print(msg) 函数名为Print,参数有一个,为msg,函数体调用print系统函数,输出msg. 接下来就是可变参数,这个特性是比较特殊的,像C#中的params,但又有所不同. 例子1: 1 def PrintTuple(*args): 2 for arg in args: 3 print(arg) 4 5 PrintTuple('Tom','Mary','Lucy') 依次输出Tom Mary Lucy. 需

关于Python函数定义全局变量执行弹出SyntaxWarning的问题

脚本展示: [[email protected] tmp]# cat test.py  #!/usr/bin/env python def func():         x = 1         global x func() print x 语法警告 修改脚本 执行脚本 [[email protected] tmp]# python test.py  1 看到上面执行脚本没有再出现语法警告了