博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python基础之函数
阅读量:4691 次
发布时间:2019-06-09

本文共 2248 字,大约阅读时间需要 7 分钟。

1、python中函数的定义:

       函数其实就是带名字的代码块,用于完成一些具体的工作。如果我们在写一段程序的时候,需要多次用到同样的一个功能,如果每次都要重复写相同的代码,不仅会增加我们的代码量,更会让我们写出的代码让别人看起来觉得很low,而如果我们把功能作为一个代码块封装在一个函数里,每次仅需要调用这个函数,是不是就很方便了?这就是函数的意义所在。

1.1函数的定义方式

         def test(x):

            "The function defination"
                x+=1
                return x

###解释
 test:函数名
():内可定义形参
 “”:文档描述(非必要,最好写)
 x+=1:泛指代码块或程序处理逻辑 #
  return:定义返回值

调用运行:可以带参数也可以不带

函数名()

 

2、使用函数的好处

(1)减少代码重用

(2)保护一致性,易维护

(3)可扩展性

3、函数和过程的区别

       过程就是没有返回值的函数(即没有return)

       

def test01():    msg='hello the little green grass'    print(msg)def test02():    msg='hello the beautiful girl'    print(msg)    return msgdef test03():    msg='the girl is gorgeous'    print(msg)    return 1,2,3,'a',['alex'],{
'name':'czd'}t1=test01()t2=test02()t3=test03()print(t1)print(t2)print(t3)

 

explain: 返回值数=0:返回none;(没有返回值,即过程)  返回值数=1:返回object;  返回值数>1:返回tuple; 4、函数参数 4.1.形参和实参     实参是一个实实在在存在的参数,是实际占用内存地址的,而形参只是意义上的一种参数,在定义的时候是不占内存地址的。     函数的调用中,可能存在多个实参,在给函数传递参数的时候只要有两种方式,位置实参和关键字实参,每个实参都由变量名和值组成,实参还可以是列表、字典。 4.2 改用函数写
def calc(x,y):       #(x,y)为形参    res=x**y    return resres=calc(a,b)      #(a,b)为实参print(res)
4.3  位置参数和关键字参数
def calc(x,y):    res=x**y    return resres=calc(2,3)print(res)位置参数必须一一对应,缺一不行多一也不行def test(x,y,z):    print(x)    print(y)    print(z)test(1,2)    # 报错关键字参数无需一一对应,但缺一不行多一也不行def test(x,y,z):    print(x)    print(y)    print(z)test(y=1,x=2,z=4)test(x=2,z=4)   #缺一报错 位置参数必须在关键词左边def test(x,y,z):    print(x)    print(y)    print(z)test(1,y=2,3)  # 报错test(1,2,y=3)    # 报错test(1,2,z=3)test(1,2,z=3,y=4)    # 报错
4.4 默认参数
def handle(x,type='None'):    print(x)    print(type)handle('hello')   # type默认‘None’handle('hello',type='squile')handle('hello','squile')  # 位置参数
4.5 参数组
def test(x, *args):  # 列表    print(x)    print(args)test(1, *['x', 'y', 'z'])test(1, ['x', 'y', 'z'])  # 没有*时,把列表当成一个整体传给argsdef test(x,**kwargs):   #字典    print(x)    print(kwargs)test(1,y=2,z=3)test(1,y=2,z=3,z=4)  # 报错,一个参数不能穿2个值
4.6 默认参数与参数组联合使用
# *args必须在前,**kwargs在后def test(x,*args,**kwargs):    print(x)    print(args)    print(kwargs)test(1,1,2,11,x=1,y=2,z=4)   #报错,x重了test(1,1,2,11,y=2,z=4)def test(x,*args,**kwargs):    print(x)    print(args,args[-1])    print(kwargs,kwargs.get('y'))test(1,1,2,11,y=2,z=4)test(1,*[1,2,3],**{
'y':1})
 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/changzhendong/p/11152200.html

你可能感兴趣的文章
bootstrap datetimepicker 位置错误
查看>>
9结构型模式之代理模式
查看>>
第二节 整型数据
查看>>
Python 序列
查看>>
Liferay的架构:缓存(第一部分)
查看>>
初识B/S结构编程技术
查看>>
方法、hadoop源码之JobQueueTaskScheduler-by小雨
查看>>
页面重构总结
查看>>
IO 函数
查看>>
Unity V3 初步使用 —— 为我的.NET项目从简单三层架构转到IOC做准备
查看>>
JSP页面间传递参数
查看>>
VSNETcodePrint 2005 & SQL ServerPrint 2005
查看>>
java数组基本操作
查看>>
String的indexOf()用于获取字符串中某个子字符串的位置
查看>>
shell 脚本运算符
查看>>
杭电 1711 Number Sequence
查看>>
又一道软通动力7K月薪面试题——银行业务调度系统
查看>>
Matlab画图-非常具体,非常全面
查看>>
浏览器同源策略及其规避方法
查看>>
ReactJS入门
查看>>