设为首页 收藏本站
查看: 559|回复: 0

[经验分享] Python日志之Python函数

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-7-22 08:37:15 | 显示全部楼层 |阅读模式
Python日志之Python函数:
一、认识函数
1.什么是函数
    函数,function,通俗来说,函数,就是功能的意思,函数是用来封装特定功能的,比如,在Python中,len()是一个函数,len()这个函数实现的功能可能是返回一个字符串的长度,所以说len()这个函数他的特定功能就是返回长度,再比如,我们可以定义一个函数,然后编写这个函数的功能,之后要使用的时候再调用这个函数。所以函数分为两种类型,一种是系统自带的不用我们编写其功能的,比如len()这种函数,再一种就是我们自己定义的,需要我们编写其功能的,这种函数自由度高,叫做自定义函数,需要使用的时候直接调用该函数。

2.函数的功能
    不同的函数实现不同的功能,方便快捷
#实例:
#系统自带的函数
#1.实现取字符串长度的功能
1
2
a="hellomyteacher"
print len(a)



#输出结果:
14

#2.实现字符串的切割
1
2
3
a="student"
b=a.split("u")
print b



#输出结果:
1
['st', 'dent']



#注意,分割结果不包括本身u的

#3.自定义的函数
1
2
3
4
def a():
    print "hello";print 777
    print "a"
a()



#输出结果:
1
2
3
hello
777
a




3.Python里函数的定义
    在Python中要想使用自定义函数,就得先定义一个函数,定义一个函数包括两个部分的含义,第一个含义是申明这个制定的部分是函数,而不是其他的对象;第二个含义是定义这个函数所包含的功能,也就是要编写的这个函数的功能
#函数的定义
#格式
'''
def 函数名():#括号不可缺,以及冒号:,表示结尾了
    函数内容;
'''
#实例
1
2
3
def function1():
    a=8
    print a




二、形参和实参
1.函数中参数的概念
    函数是为了实现一项或多项功能,我们知道函数len()是取字符串长度,但是吐过仅仅只有len(),他是没有实际意义的,毕竟我们没有取字符串长度的目标,如果我们要让他有实际意义,就必须将某个字符串放进这个函数里面,比如我们要取字符串"admin"的长度,我们就要把"admin"放进len()这个函数里面,就变成了len("admin"),这样我们的len()函数才有实际意义,这时,我们把括号里的"admin"称为函数的参数,其实,参数就是函数在执行其功能时所需要使用到的数据。
#参数的概念
print len()
#输出结果:
Traceback
TypeError:len() takes exactly one argument (0 given)
1
2
a="admin"
print len(a)



#输出结果:
1
5




2.什么是形参
    形参一般发生在函数定义的过程中,形参一般指参数的名称,而不代表参数的值,他仅仅只是形式上的参数,仅仅只标明一个函数里面,哪个位置有哪个参数名称的参数而已。
#什么是形参
1
2
3
4
5
def function1(a,b):
    if a>b:
        print a
    else:
        print b




3.什么是实参
    实参跟形参刚好互补,实参一般是在函数调用是出现的,实参一般指的是参数具体的值,而不是形式上的
#什么是实参
def function1(a,b):
    if a>b:
        print a
    else:
        print b#之前为形参

function1(1,3) #现在是实参

区别:
实参是具体的值,形参只是一个参数的名称,表示位置所在
实参和形参出现的时候不一样,实参出现在调用,形参出现在定义

4.参数的传递
    在Python中函数在调用过程中参数的传递是有顺序的
#参数的传递
#第一种,最简单的传递,实参传到形参
1
2
3
4
5
6
def function(a,b):
    if a>b:
        print "前面这个数大于后面这个数"
    else:
        print "后面这个数比较大"
function(7,8)  #7->a,8->b



#输出结果:
1
后面这个数比较大



#第二种,赋值传递
1
2
3
4
5
def function(a,b=8):
    print a
    print b
function(1)
function(1,2)




5.关键参数
    在Python中一个函数中出现多个参数的时候,我们可以通过参数的名字直接给我们的参数赋值,那么这些参数称之为关键参数
#关键参数
1
2
3
4
5
def function(a=1,b=6,c=7):#初始化
    print a
    print b
    print c
function(5)



#输出结果:默认传递到第一个形参a
1
2
3
5
6
7



function(b=7,a=8)
#输出结果:
1
2
3
8
7
7



function(5,c=2,b=3)
#输出结果
1
2
3
5
2
3



function(b=4,c=2,a=1)
#输出结果:
1
2
3
1
4
2



'''但是要注意,参数不能冲突'''
function(b=2,c=3,2)
#输出结果:
提示程序有eroor

三、全局变量和局部变量
1.什么是作用域
    Python中一个变量是在一定的范围内其作用的,在其起作用的这个范围我们称之为作用域。
#作用域
def func():
    i=8
print i
#输出结果:
提示i没有定义,i作用范围是函数内,所以在print执行功能时是没有意义的,即i不再print的作用范围
print j
j=9
#输出结果:
提示j没有定义,j的作用域在赋值之后,而之前的print没有包括到作用域
1
2
j=9
print j



#输出结果:
1
9




2.局部变量
    在Python中作用域在一定范围内而非全局都起作用的变量,我们叫做局部变量,在函数中,如果我们没有进行全局变量申明,那么就默认是局部变量。
#局部变量
1
2
3
4
5
def func2(a):
    i=7
    print i
i=9
func2(i)



#输出结果:i是局部变量
1
7



print i
#输出结果:9是局部变量调用的实参
9

3.全局变量
   在Python中这些变量的作用域为全局,也就是作用在程序的全部地方,那么我们需要对这个变量进行全局声明,声明后这个变量就变成了全局变量  
#全局变量
1
2
3
4
5
6
def func3():
    global i  #i是全局变量,global进行全局声明
    i=7
    print i
i=9
func3()



#输出结果:
1
7



因为从外到内,里面的i=7是函数一直所赋予的值,外部的i=9并没有赋值进去

i=9
print i
#输出结果:并没有调用函数func3
9

四、函数的使用和返回值
1.函数的调用
    在运行程序是,要执行某个函数,就需要调用该函数,想要调用一个函数,在函数定义后,直接输入一遍这个函数名即可,如果要传递实参到函数里面执行,直接诶再调用的时候括号里面输入实参即可。比如一个函数def func3():这样定义的,那么我们调用它直接输入func3(参数)即可。其中参数可以忽略
def a():
    i=1
a()

2.函数的返回值
    在Python中有的函数是有返回值的,有的函数是没有返回值的,而有返回值的函数,我们可以返回一个值,也可以让函数返回多个值。
#函数返回值
#函数返回值是通过return语句实现的
#返回一个值的情况
1
2
3
4
def test():
    i=7
    return i
print test()



把i return至函数test()
#输出结果:
1
7




#多个返回值的情况
1
2
3
4
5
def test2(i,j):
    k=i*j
    return (i,j,k)
x=test2(4,5)
print x



#输出结果:
1
(4,5,20)



1
2
3
4
5
def test2(i,j):
    k=i*j
    return (i,j,k)
y,z,m=test2(4,5)
print y



#输出结果:
1
4




五、文档字符串
1.什么是文档字符串
    作为一门语言,Python可以定义很多很多的函数,当函数数量增加时,对于开发人员来说,如果遇到太多的函数而没有进行深入了解这个程序,就会变得混乱,所以针对这种因为数量规模增加而变得杂乱的问题,我们需要去解决
第一种方式:在开发的时候为每个函数写一个文档说明
第二种方式:在每个函数开头增加一段说明性文字,那么这些文字我们成为文档字符串,这样使程序变得清晰


2.文档字符串使用详解
#文档字符串
1
2
3
4
5
6
7
8
def d(i,j):
    '''这个函数实现一个乘法运算。
    函数会返回一个乘法运算的结果。'''  
#文档字符串,紧跟冒号后,用'''三引号引起来,第一个字母必须大写,句末必须有句#\号
    k=i*j
    return k
print d.__doc__#打印文档字符串内容
help(d)        #输出d的字符信息,包括文档字符串和函数定义






运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-89250-1-1.html 上篇帖子: 计算100以内所有奇数的和以及所有偶数的和 下篇帖子: linux脚本检测本机与指定IP段网络是否畅通
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表