码迷,mamicode.com
首页 > 编程语言 > 详细

Python基础之【第三篇】

时间:2015-11-12 19:40:41      阅读:329      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

技术分享

技术分享

def 函数名(参数):

     

    ...

    函数体

    ...

函数的定义主要有如下要点:

  • def:表示函数的关键字
  • 函数名:函数的名称,日后根据函数名调用函数
  • 函数体:函数中进行一系列的逻辑计算,如:发送邮件、计算出 [11,22,38,888,2]中的最大数等...
  • 参数:为函数体提供数据
  • 返回值:当函数执行完毕后,可以给调用者返回数据。

以上要点中,比较重要有参数和返回值:

和其他高级语言区别:
1.声明函数名尾部要有冒号.
2.它不需要用花括号将语句块括起来,用TAB键缩进.

函数式编程最重要的是增强代码的重用性和可读性

实例:

def test_a():
        print hello world
        print www.jeapedu.com

def test_b(varl,var2):   #函数定义,形参,提供给使用者一个接口.
        print val1,
        print val2,

print Entry programme
test_a()
test_b(12,13)       #函数调用,实参.
print leave programme

1、返回值

函数是一个功能块,该功能到底执行成功与否,需要通过返回值来告知调用者。

def 发送短信():

     

    发送短信的代码...

 

    if 发送成功:

        return True

    else:

        return False

 

 

while True:

     

    # 每次执行发送短信函数,都会将返回值自动赋值给result

    # 之后,可以根据result来写日志,或重发等操作

 

    result = 发送短信()

    if result == False:

        记录日志,短信发送失败...

2、参数

为什么要有参数?看下下面的例子:

如果不定义参数,用函数的话:(每个有相同功能的都写个函数,说好的代码简化呢?)

def CPU报警邮件()
    #发送邮件提醒
    连接邮箱服务器
    发送邮件
    关闭连接

def 硬盘报警邮件()
    #发送邮件提醒
    连接邮箱服务器
    发送邮件
    关闭连接

def 内存报警邮件()
    #发送邮件提醒
    连接邮箱服务器
    发送邮件
    关闭连接
 
while True:
 
    if cpu利用率 > 90%:
        CPU报警邮件()
 
    if 硬盘使用空间 > 90%:
        硬盘报警邮件()
 
    if 内存占用 > 80%:
        内存报警邮件()

函数有三中不同的参数:

  • 普通参数
  • 默认参数
  • 动态参数
  • 1,接收多个参数
    2,内部自动构造元组
    3,序列,*,避免内部构造元组

  •  1 >>> li = (1,2,3,4,5,66,alex)
     2 >>> 
     3 >>> def func(*args):
     4 ...     print args
     5 ... 
     6 >>> func(li)
     7 ((1, 2, 3, 4, 5, 66, alex),)
     8 >>> func(*li)
     9 (1, 2, 3, 4, 5, 66, alex)
    10 >>> li = [1,2,3,4,5,66,alex]
    11 >>> def func(*args):
    12 ...     print args
    13 ...     print args[0]                通过下标获取元素
    14 >>> func(li)
    15 ([1, 2, 3, 4, 5, 66, alex],)
    16 >>> func(*li)
    17 (1, 2, 3, 4, 5, 66, alex)
    18 >>> 
技术分享普通参数
技术分享默认参数
技术分享动态参数一
技术分享动态参数二
技术分享动态参数三

如果一个函数定义中的最后一个形参有 ** (双星号)前缀,所有正常形参之外的其他的关键字参数都将被放置在一个字典中传递给函数,比如:

 1 def contacs(a,**b):
 2     print "a is: %s" %a 
 3     for i in b:
 4         print i + ":" + str(b[i])
 5 
 6 contacs(100, saneri=1234567890,rain=007)      #调用
 7 
 8 a is: 100                                       #执行结果
 9 saneri:1234567890
10 rain:7        

扩展:发送邮件实例

import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr

def email(message):
    msg = MIMEText("邮件报警测试", plain, utf-8)
    msg[From] = formataddr(["saneri",saneri@126.com]) #发件人和发件邮箱
    msg[To] = formataddr(["收件人",838118461@qq.com])
    msg[Subject] = message                   #这里我调用了参数

    server = smtplib.SMTP("smtp..com", 25)
    server.login("saneri@126.com", "密码")
    server.sendmail(shuaige@126.com, [451161316@qq.com,], msg.as_string())
    server.quit()


if __name__ == u__main__:
    cpu = 100
    disk = 500
    ram = 50
    for i in range(1):
        if cpu > 90:
            alert = uCPU出问题了   #这里设置了一个变量
            email(alert)  #这里调用函数的时候引用了上面的变量,当执行函数的时候形参讲会被替换掉,message=‘CPU出问题了‘  发送邮件!
        if disk > 90:
            alert = u硬盘出问题了
            email(alert)
        if ram> 80:
            alert = u内存出问题了
            email(alert)

--------------------------------------------------------------------------------------------------

如果执行python test.py 等同于 __name__ == ‘__mail__‘


被执行的脚步,__name_‘值 ==__mail__

技术分享

return 语句用来从函数中return(返回),也就是说跳出函数。同样,我们也可以从函数中选择性地返回一个值。

1 def maximum(x, y):
2     if x > y:
3         return x
4     elif x == y:
5         return 两个数相等
6     else:
7         return y
8 
9 print(maximum(2, 3))

输出:
3

 

 

 

 

技术分享

Python应用越来越广泛,在一定程度上也依赖于其为程序员提供了大量的模块以供使用,如果想要使用模块,则需要导入。

python有三种导入模块的方法:

import modname 

from modname import funcname  as rename   

from modname import fa, fb, fc  或者  from modname import * 

导入模块时是根据 sys.path这个路径作为基准来进行的.

1 import sys
2 
3 print sys.path
4 
7 结果:
8 
9 [/Users/wupeiqi/PycharmProjects/calculator/p1/pp1, /usr/local/lib/python2.7/site-packages/setuptools-15.2-py2.7.egg, /usr/local/lib/python2/

如果sys.path路径列表没有你想要的路径,可以通过 sys.path.append(‘路径‘) 添加

 

Python基础之【第三篇】

标签:

原文地址:http://www.cnblogs.com/saneri/p/4959930.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!