• Python心得基础篇【2】函数


    1. 去除空格:两端:strip();末尾空格rstrip();开头空格lstrip()

    2. 大小写相关:首字母大写title();全大写upper();全小写lower()

    3. 元素:添加到末尾append();插入元素insert(索引,值);删除元素,且不再使用del;删除末尾元素,并使你能继续访问,可存储pop(索引);删除元素但不知其位置remove(),分隔单词split(),计数count()

    4. 其他:int(),str(),随机数random.randrange(,);时间停顿time.sleep()

    5. 数字大小比较:min;max;sum

    6. 列表相关指令:排序sort()、sorted;反转(永久性修改列表元素顺序,再次调用可恢复)reverse();变成列表list;遍历所有索引和元素enumrate;长度len;把要传入的元素做为一个整个添加到集合中set()集合update方法:是把要传入的元素拆分,做为个体传入到集合中

           

          7.字典相关指令:返回键值对items();字典.keys(),.values()(返回的是列表)

     

    自定义函数

    一、背景

    在学习函数之前,一直遵循:面向过程编程,即:根据业务逻辑从上到下实现功能,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,也就是将之前实现的代码块复制到现需功能处,如下

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

    腚眼一看上述代码,if条件语句下的内容可以被提取出来公用,如下:

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

    对于上述的两种实现方式,第二次必然比第一次的重用性和可读性要好,其实这就是函数式编程和面向过程编程的区别:

    • 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可
    • 面向对象:对函数进行分类和封装,让开发“更快更好更强...”

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

     二、 函数的定义和使用

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

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

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

    1、返回值

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

     1 def 发送短信():
     2      
     3     发送短信的代码...
     4  
     5     if 发送成功:
     6         return True
     7     else:
     8         return False
     9  
    10  
    11 while True:
    12      
    13     # 每次执行发送短信函数,都会将返回值自动赋值给result
    14     # 之后,可以根据result来写日志,或重发等操作
    15  
    16     result = 发送短信()
    17     if result == False:
    18         记录日志,短信发送失败...

    2、参数

    函数的有三中不同的参数:

    • 普通参数
    • 默认参数
    • 动态参数

    lambda表达式

    对于简单的函数,也存在一种简便的表示方式,即:lambda表达式

    # ###################### 普通函数 ######################
    # 定义函数(普通方式)
    def func(arg):
        return arg + 1
      
    # 执行函数
    result = func(123)
      
    # ###################### lambda ######################
      
    # 定义函数(lambda表达式)
    my_lambda = lambda arg : arg + 1
      
    # 执行函数
    result = my_lambda(123)

     递归

    利用函数编写如下数列:

    斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368...

    1 def func(arg1,arg2):
    2     if arg1 == 0:
    3         print arg1, arg2
    4     arg3 = arg1 + arg2
    5     print arg3
    6     func(arg2, arg3)
    7   
    8 func(0,1)
  • 相关阅读:
    [Vim].vimrc
    [笔试面试][code_by_hand]压缩字符串
    [笔试面试][code_by_hand]输出第二个字符串在第一个字符串中的连接次序
    [笔试面试]串s1="ABCDACDAE" s2="DAE" 找出s1中,包含s2的最小子串,要求该子串含有s2中的所有字符,串内字符无顺序关系
    [笔试面试][code_by_hand]从二元树中找出和为某一值的所有路径
    DEV 皮肤的使用
    Dev GridControl使用小结
    [转载]DEV控件:gridControl常用属性设置
    C#网页 自动登录 提交POST信息 方法
    比较字符串NSString
  • 原文地址:https://www.cnblogs.com/hank-lkj/p/8353470.html
Copyright © 2020-2023  润新知