设为首页 加入收藏

TOP

python--函数(一)
2017-10-09 17:34:02 】 浏览:3548
Tags:python-- 函数

函数


 

一、介绍

定义:函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可。

特性:

  1. 减少重复代码
  2. 使程序变的可扩展
  3. 使程序变得易维护

语法定义

def func():#函数名
    print("Hello,world")

func() #调用函数

  

带参数

def add(a,b):
	c = a+b
	return c #返回函数执行结果
f = add(1,2)

 

二、函数参数 

2.1形参和实参

    形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量

def add(a,b):   # a , b 为形参

 

     实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值

f = add(1,2) # 1, 2 实参

  

2.2默认参数

 

def person_info(name,age,country,sex):
	print("-----个人信息-----")
	print("姓名:",name)
	print("年龄:",age)
	print("国籍:",country)
	print("性别:",sex)

person_info("张三",23,"CN","M")
person_info("李四",24,"CN","F")
person_info("王五",25,"CN","F")
person_info("赵六",26,"CN","M")

  

country这个参数的值都是CN,一般而言国籍如果我们不填写,默认就是中国,这就是通过默认参数实现的。我们可以把country设置成默认参数。

def person_info(name,age,sex,country="CN")

  

这样这个参数在调用时,就不用指定了,默认就是"CN",如果指定的话,就是指定的值。

 

2.3关键字参数

一般情况下,函数传递要按照顺序,不想按顺序可以使用关键字参数,指定参数名,但是关键字参数必须放在位置参数之后。

person_info(name,age,country="CN")

 

三、参数组

  1. 非固定位置参数(*args)
  2. 非固定关键字参数(**kwargs)

3.1非固定位置参数

  1.  接收N个位置参数,转换成元组的形式
  2. 定义:
def test(*args):
    print(args)

test(1,2,3,4,5)

#输出
(1, 2, 3, 4, 5)  # 参数转换为元组

 如果只有一个非固定参数:

def test(*args):
	print(args)

test(1)

#输出
(1,)

  

  3.传入列表

def test(*args):
	print(args)

print("1".center(20,'-'))
test()  #空

print("2".center(20,'-'))
test(*[1,2,3,4])   # 参数前面加*,输出的args = tuple([1,2,3,4])

print("3".center(20,'-'))
test([1,2,3,4])   # 参数前面不加* ,则列表被当作单个位置参数

#输出
---------1----------
()
---------2----------
(1, 2, 3, 4)
---------3----------
([1, 2, 3, 4],)

 

  4.位置参数和非固定位置参数

def test(a,*args):
	print(a)
	print(args)

print("1".center(20,'-'))
test(1,2,3,4,5)

#输出
---------1----------
1
(2, 3, 4, 5)

  

  5.关键字参数和非固定位置参数

def test(a,*args):
	print(a)
	print(args)

print("1".center(20,'-'))
test(x=1,2,3,4,5)

#输出
 File "G:/python/untitled/study2/parament.py", line 7
    test(x=1,2,3,4,5)
            ^
SyntaxError: positional argument follows keyword argument

位置参数要在关键字参数之后

  

3.2非固定关键字参数

  1. 吧N个关键字参数,转换为字典形式
  2. 定义: 
def test(**kwargs):
	print(kwargs)

test(name="bigberg",sex="M")

输出
{'name': 'bigberg', 'sex': 'M'}

  

  3.传入字典  

def test(**kwargs):
	print(kwargs)

test(**{"name":"bigberg","sex":"M"})

#输出
{'name': 'bigberg', 'sex': 'M'}

#传入字典时,一定要加 ** ,否则会报错

  

  4.位置参数和关键字参数

def test(a,**kwargs):
	print(a)
	print(kwargs)

print("1".center(20,'-'))
#只有位置参数
test("bigberg")

print("2".center(20,'-'))
test("bigberg",sex="M",country="CN")

print("3".center(20,'-'))
#只有关键字参数
test(a="bigberg",sex="M",country="CN")

#输出
bigberg
{}    
---------2----------
bigberg
{'sex': 'M', 'country': 'CN'}
-------
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇ipaddr python3版本 下一篇安装Xgboost的一些坑

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目