• Python基础第四课


    上次课学习了循环结构
        这样Python程序结构已经明了(顺序,选择,循环三大结构)13.py
    还学习了python内置的数据结构:列表,元组,字典
        以及相关操作
     
     

    函数:

        相当于一个盒子,给一个输入,盒子内部数据处理,然后返回给你一个输出
        例如abs()函数()绝对值函数,给一个数字进去,非负不变,负数变成相反数
    函数组成:
        函数名,传入参数,返回参数
     
        def 函数名(传入参数): ---->14.py
            ………………一顿操作猛如虎
            return …………一看输出0-5
        
    具体,一次可以多个参数(以元组实现返回传递) 15.py
     
    参数检查:
        print(abs('q'))
            TypeError: bad operand type for abs(): 'str'
        print(mylib.my_abs('i'))
            File "f:pytestmylib.py", line 6, in my_abs
                if x > 0:
            TypeError: '>' not supported between instances of 'str' and 'int'
        我们自己定义的函数没有检查参数的正确性。
        可以用isinstace函数检查参数,具体将在错误中详细说明
        def my_abs(x):
            if not isinstance(x, (int, float)):
                raise TypeError('bad operand type')
            if x >= 0:
                return x
            else:
                return -x
     
    默认参数: ---->16.py
        常如power()函数用语计算幂
        power(a,b) 定义为a的b次幂,默认power(a)为平方
     
    可变参数: ---->17.py
        给进去不确定个数的数字,求他们的和
        参数加上*
     
    关键字参数: ---->18.py
        可以自己给定一些参数进去, 以类似字典类型传入
     
    命名关键字参数 ---->19.py
        固定的给定的关键字参数名字,传入时需要类似字典传入,不能缺少,不可重复
        * 不是参数,而是特殊分隔符。
        如果缺少 * ,Python 解释器将无法识别位置参数和命名关键字参数:
    混合:
        def f1(a, b, c=0, *args, **kw):
            print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)
        def f2(a, b, c=0, *, d, **kw):
            print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)
     
     
    至此,Python的函数与参数调用讲完了,体会一下所有python函数都可以通过这种方式调用f1(*args, **kw)
    可以说,默认参数,可变参数都是以tuple方式传入,关键字参数是以dict方式传入
     

    递归函数: ---->20.py

        def fact(n):
            if n==1:
                return 1
            return n * fact(n - 1)
     
        fact(5)的运算过程
        ===> 5 * fact(4)
        ===> 5 * (4 * fact(3))
        ===> 5 * (4 * (3 * fact(2)))
        ===> 5 * (4 * (3 * (2 * fact(1))))
        ===> 5 * (4 * (3 * (2 * 1)))
        ===> 5 * (4 * (3 * 2))
        ===> 5 * (4 * 6)
        ===> 5 * 24
        ===> 120
     

    练习:

        自制一个密码管理器,用来保存你的各种密码,要求功能:
        1.主界面(选项:密码生成,密码查询,密码修改,密码删除)
        2.密码生成:自定义一个函数实现,用户输入密码的描述,输入密码的长度,使用随机数生成一个比较复杂的密码,并且保存在列表中
        3.密码查询,用户输入关键词,根据关键词,查询对应的
        4.密码修改,先查询到,然后提示用户输入新的密码,确定后保存
        5.密码删除,首先根据关键词查找到你的密码,然后确定删除后删除
     
     
  • 相关阅读:
    [Jenkins] 批量删除构建历史
    [Android Tips] 32. 解决 Android Device Monitor 在 Mac OS X 卡住
    [Gradle] 查看项目依赖
    [Gradle] 获取 gradle 命令行参数
    [Android Tips] 31.如何将第三库引入的 Permission 删除掉
    [Gradle] 发布构件到本地仓库
    [Android Tips] 30.如何在 Android Studio 中一次性格式化所有代码
    下载安卓应用的历史版本
    设置int、float型数据的输出格式
    头文件limits—各个类型的数据的范围
  • 原文地址:https://www.cnblogs.com/MarmaladeCat/p/2f2b3ba5cf22f82b9fa72af293958891.html
Copyright © 2020-2023  润新知