您的位置:首页 > 编程语言 > Python开发

PYTHON 函数

LYAJJ 2020-06-29 05:04 197 查看 https://blog.csdn.net/lyajj/ar

1.函数的格式

PYTHON函数格式为

def 函数名(参数1,参数2...):
代码块

函数的代码块都要有相应的缩进。否则,不是函数的内容。

2.传参类型

PYTHON中的实参可分为位置实参,关键字实参。

2.1位置实参

位置实参是调用函数时,传入的实参顺序必须要和形参相同。

def test(a,b):
print(a + " is a")
print(b + " is b")

test("BEN","DOG")
输出::
BEN is a
DOG is b

如果是test(“DOG”,“BEN”)那么a就是DOG,b是BEN。根据实参的位置传给相应的形参。

2.2关键字实参

关键字实参可不用管调用时实参的位置,能将对应的实参传递给相应的形参。

def test(a,b):
print(a + " is a")
print(b + " is b")

test(b="DOG",a="BEN")
输出::
BEN is a
DOG is b

指定将"DOG"赋值给b,"BEN"赋值给a后,即便调用时的顺序是DOG的在前面,BEN的在后面。DOG仍然是赋值给b,BEN仍然是赋值给a

2.3默认参数

可以在函数定义时在参数后面赋值,这样如果没有传递相应的实参的话,形参采用默认值,但默认参数需放在参数最后。

def test(a,b='DOG'):
print(a + " is a")
print(b + " is b")

test("BEN")
test("BEN","CAT")
输出::
BEN is a
DOG is b
BEN is a
CAT is b

3.函数返回值

函数中可以返回字符串,列表,字典等等。一旦return函数终止。

返回列表
def test(a,b):
l = list(range(a,b))
return l

a = test(1,5)
for a_ in a:
print(a_)
输出::
1
2
3
4

返回字典
def test(a,b):
d = {}
d['a'] = a
d['b'] = b
return d

d = test("BEN","DOG")
for key,value in d.items():
print(key + " is " + value)
输出::
a is BEN
b is DOG

4.将若干个参数形成元组

定义函数的时候,如果在形参前面加上

*
表示将若干个实参形成元组后赋值给形参,只能在参数的最后。这里关键字实参可能就不怎么适用了。

def test(a,*b):
l = []
l.append(a)
for l_ in b:
l.append(l_)
return l

l = test(1,2,3,4)
for l_ in l:
print(l_)
输出::
1
2
3
4

5.将若干个参数形成字典

函数定义时在参数前面加上

**
,调用函数时,实参以关键字实参给出,传递给形参时会将其形成字典赋值给形参。

def test(a,**b):
d ={}
d['a'] = a
for b_k,b_v in b.items():
d[b_k] = b_v
return d

d = test("BEN",b="DOG",c="CAT")
for d_k,d_v in d.items():
print(d_k + " is " + d_v)
输出::
a is BEN
b is DOG
c is CAT

6.模块

模块是以

.py
为后缀的文件,类似于C里面的cpp或头文件。可以将函数放在一个模块中,然后引入整个模块,或模块中的某个函数来使得代码更加清晰。
引入模块的句式:

import 模块名:引入整个模块的内容,调用函数或数据时用模块名.函数名/数据名
import 模块名 as 名称:引入整个模块的内容,调用时同上,需将模块名用名称代替。
from 模块名 import 函数名或数据名:仅仅将函数或数据引入,调用时直接函数名/数据名
from 模块名 import 函数名或数据名 as 名称:同上,函数名/数据名用名称代替
from 模块名 import *:引入模块全部内容,调用时直接用函数名/数据名
e.g:
from test import test
从test.py文件中引入test
标签: