python总结5
来源:互联网 发布:linux 黑客技术 编辑:程序博客网 时间:2024/06/16 20:06
1.定义函数使用关键字def,后接函数名和放在圆括号( )中的可选参数列表,函数内容以冒号起始并且缩进。一般格式如下:
def 函数名(参数列表):
函数体
return [expression]
注意:参数列表可选,文档字符串可选,return语句可选,默认情况下,参数值和参数名称是按函数声明中定义的的顺序匹配起来的。
例:
def hello():
print("Hello World!")
hello()
更复杂点的应用,函数中带上参数变量:
def arae(width,height):
return width*height
w=10
h=10
print(arae(10,10))
2.函数变量作用域
在函数内部定义的变量拥有一个局部作用域,在函数外定义的拥有全局作用域。
注意:在函数内部可以引用全局变量,但无法对其赋值(除非用global进行声明)。
例:
a = 5 # 全局变量a
def func1():
print('func1() print a =', a)
def func2():
a = 21 # 局部变量a
print('func2() print a =', a)
def func3():
global a
a = 10 # 修改全局变量a
print('func3() print a =', a)
func1()
func2()
func3()
print('the global a =', a)
3.函数调用
与其他语言中函数调用一样,Python中在调用函数时,需要给定和形参相同个数的实参并按顺序一一对应。
def fun(name, age, gender):
print('Name:', name, 'Age:', age, 'Gender:', gender, end=' ')
print()
fun('Jack', 20, 'man')
函数也可以通过keyword=value 形式的关键字参数来调用,因为我们明确指出了对应关系,所以参数的顺序也就无关紧要了。
def fun(name, age, gender):
print('Name:', name, 'Age:', age, 'Gender:', gender, end=' ')
print()
fun(gender='man', name='Jack', age=20)
Python中的函数也可以给一个或多个参数指定默认值,这样在调用时可以选择性地省略该参数:
def fun(a, b, c=5):
print(a + b + c)
fun(1, 2)
fun(1, 2, 3)
普通参数就是像下面这段函数传入的参数一样,传入函数,没有默认值
def f(a):
a = a + 1
return a
b=f(3)
print(b)
2、指定参数
#像这样按照顺序传入的话,如果没有指定参数的值那么就会按照顺序分别给a,b,c赋初始值
d=f(3,4,5)
print(d)
#如果像这样指定a,b,c的值,那么它们就是指定参数,可以不按照它们原来的顺序传入
e=f(c=5,b=4,a=3)
print(e)
3、默认参数
#默认参数
#像这样在括号里指定b的初始值,那么b就成为默认参数
def f(a,b=9):
sum = a + b
return(sum)
#从这里可以看到,我们只传入一个参数3,它就会默认按照顺序赋值给第一个变量a,b就等于原来的默认值9
c=f(3)
print(c)
#当传入两个参数时,按照顺序分别赋值给a,b,那么a=3,b=4,b被重新赋值了
d=f(3,4)
print(d)
4、动态参数
#动态参数
#动态参数 *args 是指当我们需要传入多个参数时,可以用*args代表多个参数,不用分别在括号里指定多个参数
def f(*args):
print(args,type(args))
d=f(1,2,3)
#动态参数 **kwargs, 当我们需要传入键值对类型的参数时就可以用**kwargs
def f(**kwargs):
print (kwargs,type(kwargs))
d=f(a=3,b=4)
#动态参数之参数的万能模式,这样我们无论怎么传参数几乎都不会报错
def f(a,*args,**kwargs):
print(a,args,type(args),kwargs,type(kwargs))
d=f(22,33,44,k1=55,k2=66)
def 函数名(参数列表):
函数体
return [expression]
注意:参数列表可选,文档字符串可选,return语句可选,默认情况下,参数值和参数名称是按函数声明中定义的的顺序匹配起来的。
例:
def hello():
print("Hello World!")
hello()
更复杂点的应用,函数中带上参数变量:
def arae(width,height):
return width*height
w=10
h=10
print(arae(10,10))
2.函数变量作用域
在函数内部定义的变量拥有一个局部作用域,在函数外定义的拥有全局作用域。
注意:在函数内部可以引用全局变量,但无法对其赋值(除非用global进行声明)。
例:
a = 5 # 全局变量a
def func1():
print('func1() print a =', a)
def func2():
a = 21 # 局部变量a
print('func2() print a =', a)
def func3():
global a
a = 10 # 修改全局变量a
print('func3() print a =', a)
func1()
func2()
func3()
print('the global a =', a)
3.函数调用
与其他语言中函数调用一样,Python中在调用函数时,需要给定和形参相同个数的实参并按顺序一一对应。
def fun(name, age, gender):
print('Name:', name, 'Age:', age, 'Gender:', gender, end=' ')
print()
fun('Jack', 20, 'man')
函数也可以通过keyword=value 形式的关键字参数来调用,因为我们明确指出了对应关系,所以参数的顺序也就无关紧要了。
def fun(name, age, gender):
print('Name:', name, 'Age:', age, 'Gender:', gender, end=' ')
print()
fun(gender='man', name='Jack', age=20)
Python中的函数也可以给一个或多个参数指定默认值,这样在调用时可以选择性地省略该参数:
def fun(a, b, c=5):
print(a + b + c)
fun(1, 2)
fun(1, 2, 3)
普通参数就是像下面这段函数传入的参数一样,传入函数,没有默认值
def f(a):
a = a + 1
return a
b=f(3)
print(b)
2、指定参数
#像这样按照顺序传入的话,如果没有指定参数的值那么就会按照顺序分别给a,b,c赋初始值
d=f(3,4,5)
print(d)
#如果像这样指定a,b,c的值,那么它们就是指定参数,可以不按照它们原来的顺序传入
e=f(c=5,b=4,a=3)
print(e)
3、默认参数
#默认参数
#像这样在括号里指定b的初始值,那么b就成为默认参数
def f(a,b=9):
sum = a + b
return(sum)
#从这里可以看到,我们只传入一个参数3,它就会默认按照顺序赋值给第一个变量a,b就等于原来的默认值9
c=f(3)
print(c)
#当传入两个参数时,按照顺序分别赋值给a,b,那么a=3,b=4,b被重新赋值了
d=f(3,4)
print(d)
4、动态参数
#动态参数
#动态参数 *args 是指当我们需要传入多个参数时,可以用*args代表多个参数,不用分别在括号里指定多个参数
def f(*args):
print(args,type(args))
d=f(1,2,3)
#动态参数 **kwargs, 当我们需要传入键值对类型的参数时就可以用**kwargs
def f(**kwargs):
print (kwargs,type(kwargs))
d=f(a=3,b=4)
#动态参数之参数的万能模式,这样我们无论怎么传参数几乎都不会报错
def f(a,*args,**kwargs):
print(a,args,type(args),kwargs,type(kwargs))
d=f(22,33,44,k1=55,k2=66)
阅读全文
0 0
- python总结5
- Python基础总结(5)
- python 总结
- Python总结
- python总结
- python 总结
- python 总结
- python总结
- Python 总结
- python总结
- python 总结
- python总结
- Python 总结
- python总结
- python总结
- Python 总结
- Python总结
- python总结
- 阿里云Ubuntu16.04+apache2配置阿里云免费CA证书记录
- 什么是文档标准流
- 剑指Offer-9:用两个栈实现队列
- 实用Android UI工具
- 设备树那些事
- python总结5
- linux centos6.x版本net模式静态ip联网
- MyBatis使用foreach进行批量插入遇到的问题以及解决方法
- 学习后缀自动机
- 关于DataReader的个人理解
- JavaScript-MD5加密
- fetch 的使用
- Spring整合Quartz
- 基数排序 c++实现