zoukankan      html  css  js  c++  java
  • Day3

    本节内容

    1. 函数简介

    2.返回值 

    3. 参数与局部变量

    4.递归

    5.匿名函数

    6.函数式编程介绍

    7.高阶函数

    8.内置函数

    1.函数简介

    函数(function清末根据日语翻译+英语读音译为“方程”),名称出自数学家李善兰的著作《代数学》。之所以如此翻译,他给出的原因是“凡此变数中函彼变数者,则此为彼之函数”,也即函数指一个量随着另一个量的变化而变化,或者说一个量中包含另一个量。
    函数是可重复使用的,实现特定功能的代码段。编程中的函数在英文中也有很多不同的叫法。在BASIC中叫做subroutine(子过程或子程序),在Pascal中叫做procedure(过程)和function,在C中只有function,在Java里面叫做method。
     1 if cpu利用率 > 90%:
     2         #发送邮件提醒
     3         连接邮箱服务器
     4         发送邮件
     5         关闭连接
     6   
     7     if 硬盘使用空间 > 90%:
     8         #发送邮件提醒
     9         连接邮箱服务器
    10         发送邮件
    11         关闭连接
    12   
    13     if 内存占用 > 80%:
    14         #发送邮件提醒
    15         连接邮箱服务器
    16         发送邮件
    17         关闭连接
    18 
    19 #改进后,减少了重复写代码(既提高代码复用)
    20 def 发送邮件(内容)
    21     #发送邮件提醒
    22     连接邮箱服务器
    23     发送邮件
    24     关闭连接
    25   
    26 while True:
    27   
    28     if cpu利用率 > 90%:
    29         发送邮件('CPU报警')
    30   
    31     if 硬盘使用空间 > 90%:
    32         发送邮件('硬盘报警')
    33   
    34     if 内存占用 > 80%:
    View Code

    语法:

    def 函数名():
        函数体

    ex1:

     1 def fun1():
     2     print(3 * 4)
     3 
     4 fun1()
     5 print(fun1)
     6 # 1、def 关键字 ,读到这个关键字就开始创建一个函数
     7 # 2、函数名():
     8 # 3、函数体
     9 # 4、在内存中的体现,类似定义了一个fun1的变量,值是函数体,但是函数体并没有执行
    10 # 5、调用方法,函数名()
    11 # 6、尝试打印函数名
    1 def func2(x,y):
    2     #加法计算
    3     print(x + y)
    4 func2(2,4)
    5 
    6 #x,y 叫形式参数,简称形参,也可以是别的名字,跟给变量起名字的规则一样
    7 #2,4 叫实际参数,简称实参
    8 #在定义函数的过程,形参并没有开辟内存空间
    形参/实参
     1 def 发送邮件()
     2     #发送邮件提醒
     3     连接邮箱服务器
     4     发送邮件
     5     关闭连接while True:
     6  
     7     if cpu利用率 > 90%:
     8         发送邮件()
     9  
    10     if 硬盘使用空间 > 90%:
    11         发送邮件()
    12  
    13     if 内存占用 > 80%:
    14         发送邮件()
    15 
    16 
    17 #改进型
    18 def 发送邮件(邮件内容)
    19 
    20     #发送邮件提醒
    21     连接邮箱服务器
    22     发送邮件
    23     关闭连接
    24 
    25  
    26 while True:
    27  
    28     if cpu利用率 > 90%:
    29         发送邮件("CPU报警了。")
    30  
    31     if 硬盘使用空间 > 90%:
    32         发送邮件("硬盘报警了。")
    33  
    34     if 内存占用 > 80%:
    35         发送邮件("内存报警了。")
    参数使用的例子

    总结:

    形参:形式参数,不是实际存在,是虚拟变量,。在定义函数和函数体的时候使用形参,目的是在函数调用时接收实参(实参个数,类型应与实参一一对应)

    实参:实际参数,调用函数时传给函数的参数,可以是常量,变量,表达式,函数,传给形参

    形参是虚拟的,不占用内存空间,.形参变量只有在被调用时才分配内存单元

    实参是一个变量,占用内存空间

    数据传送单向,实参传给形参,不能形参传给实参

    练习1:写一个简单的计算器,可以计算2个数的加减乘除

    练习2:找个实际生产的例子/可以贴几个实际生产的例子

    扩展示例:

     1 def send_mail():
     2     import smtplib
     3     from email.mime.text import MIMEText
     4     from email.utils import formataddr
     5 
     6     msg = MIMEText('邮件内容', 'plain', 'utf-8')
     7     msg['From'] = formataddr(["赤脚大仙儿",'freedom_chentao@163.com'])
     8     msg['To'] = formataddr(["小三儿",'66660929@qq.com'])
     9     msg['Subject'] = "主题"
    10 
    11     server = smtplib.SMTP("smtp.163.com", 25)
    12     server.login("freedom_chentao@163.com", "邮箱密码")
    13     server.sendmail('freedom_chentao@163.com', ['66660929@qq.com',], msg.as_string())
    14     server.quit()
    15 send_mail()
    发邮件

    默认参数

     1 def func(name, age = 18):
     2     
     3     print "%s:%s" %(name,age)
     4 
     5 # 指定参数
     6 func('alex', 21)
     7 # 使用默认参数
     8 func('alex')
     9 
    10 注:默认参数需要放在参数列表最后
    默认参数

    返回值

     1 def func1():
     2     Y = 3 + 5
     3     return Y
     4     print(123)
     5 func1()
     6 A = func1()
     7 print(A)
     8 
     9 def func2():
    10     Y = 3 + 5
    11     return 123
    12 A = func2()
    13 print(A)
    返回值

    1、使用return 来返回函数的执行结果

    2、函数在执行过程中只要遇到return语句,就会停止执行并返回结果

    3、return的内容可以是1个或多个值

    4、如果未在函数中指定return,那这个函数的返回值为None

     练习发邮件的例子

    动态参数

     1 def func(*args):
     2 
     3     print args
     4 
     5 
     6 # 执行方式一
     7 func(11,33,4,4454,5)
     8 
     9 # 执行方式二
    10 list = [11,2,2,3,3,4,54]
    11 func(*list)
    动态参数一
    1 def func(**kwargs):
    2     print(kwargs)
    3 #执行方式一
    4 func(name='alex',age=21)
    5 
    6 #执行方式二
    7 dict = {'name':'fancis', 'age':18, 'gender':'male'}
    8 func(**dict)
    动态参数二
     1 def func(*args, **kwargs):
     2     print(args)
     3     print(kwargs)
     4 
     5 list = [11,22,33]
     6 dict = {'name':'alex','age':18}
     7 func(list)
     8 func(list,dict)
     9 func(*list,dict)
    10 func(*list,**dict)
    动态参数三

    参数的总结:

    全局/局部变量

    1 def f1(a,b):
    2     return a +b
    3 
    4 def f1(a,b):
    5     return a * b
    6 
    7 ret = f1(7,6)
    8 print(ret)

    匿名函数

    函数式编程

    内置参数

    补充:

    内置参数

    递归

    yield

    <h3>1.函数基本语法及特性</h3>

  • 相关阅读:
    背水一战 Windows 10 (90)
    背水一战 Windows 10 (89)
    背水一战 Windows 10 (88)
    背水一战 Windows 10 (87)
    背水一战 Windows 10 (86)
    背水一战 Windows 10 (85)
    背水一战 Windows 10 (84)
    背水一战 Windows 10 (83)
    背水一战 Windows 10 (82)
    背水一战 Windows 10 (81)
  • 原文地址:https://www.cnblogs.com/francis818/p/5771493.html
Copyright © 2011-2022 走看看