• 函数复习


    1、语法
    def 函数名(参数1,参数2,...):
    """
    文档描述
    """
    代码1
    代码2
    代码3
    return 值

    def:定义函数的关键字
    函数名:是用来调用函数的,
    函数名的命名必须能反映出函数的功能
    文档描述:推荐写上,来增强函数的可读性
    代码块:函数的功能实现代码
    return:函数的返回值
    2 调用阶段:函数名加括号就是在调用函数

    定义义函数的三种类型:
    有参函数:参数是函数体代码用来接收外部传入值的
    无参函数:当函数体的代码逻辑不需要函数的调用者掺入值的情况下,就无参
    空函数:函数体为pass
    def auth():
    """
    这是一个认证功能
    :return:
    """
    pass

    def put():
    """
    上传功能
    :return:
    """
    pass

    def get():
    """
    下在功能
    :return:
    """
    pass


    def ls():
    """
    list contents
    :return:
    """
    pass

    #函数的使用必须遵循:先定义,后调用的原则
    #注意:没事先定义函数而直接调用,就相当于在引用一个不存在的变量名

    #定义阶段:在定义阶段只检测语法,不执行函数体代码
    #调用阶段:根据函数名找到函数的内存地址,然后执行函数体代码


    调用函数的三种形式
    #1、
    # def func():
    # print('from func')
    #
    # func()


    #2、
    # def max2(x,y):
    # if x > y:
    # return x
    # else:
    # return y
    #
    # res=max2(10,3)
    # print(res)

    #3、

    def max2(x,y):
    if x > y:
    return x
    else:
    return y

    # res=max2(10,3)*100
    # print(res)

    #4、

    res=max2(max2(10,3),11)
    print(res)

    #什么时候应该有返回值:
    #函数体代码运行完毕后需要有一个返回结果给调用者

    #返回值有三种形式:

    #1 没有return,返回值None
    # def func():
    # pass
    #
    # res=func()
    # print(res)

    #2 return后跟一个值,返回该值本身
    # def func1():
    # return 1
    #
    # res=func1()
    # print(res)

    #3 return可以逗号分隔,返回多个值,会返回一个元组给调用者
    # def func2():
    # return 1,2,[1,2,3]
    #
    # res=func2()
    # print(res)


    # return注意点:
    #1、return返回值的值,没有类型限制
    #2、return是函数结束的标志,函数内可以写多个return,但
    #执行一次,函数就立刻结束,并把return后的值作为本次调用的返回值

    三级菜单
    menu = {
    '北京':{
    '海淀':{
    '五道口':{
    'soho':{},
    '网易':{},
    'google':{}
    },
    '中关村':{
    '爱奇艺':{},
    '汽车之家':{},
    'youku':{},
    },
    '上地':{
    '百度':{},
    },
    },
    '昌平':{
    '沙河':{
    '老男孩':{},
    '北航':{},
    },
    '天通苑':{},
    '回龙观':{},
    },
    '朝阳':{},
    '东城':{},
    },
    '上海':{
    '闵行':{
    "人民广场":{
    '炸鸡店':{}
    }
    },
    '闸北':{
    '火车战':{
    '携程':{}
    }
    },
    '浦东':{},
    },
    '山东':{},
    }

    # 方法一:
    # tag=True
    # while tag:
    # menu1=menu
    # for key in menu1:
    # print(key)
    #
    # choice1=input('第一层>>: ').strip() # choice1='asdfkhsadjkfhsakdfja'
    # if choice1 == 'b':break
    # if choice1 == 'q':
    # tag = False
    # break
    # if choice1 not in menu1:continue
    #
    # while tag:
    # menu2=menu1[choice1] #menu1['北京']
    # for key in menu2:
    # print(key)
    #
    # choice2 = input('第二层>>: ').strip()
    # if choice2 == 'b':break
    # if choice2 == 'q':
    # tag=False
    # break
    # if choice2 not in menu2:continue
    #
    # while tag:
    # menu3 = menu2[choice2] #
    # for key in menu3:
    # print(key)
    #
    # choice3 = input('第三层>>: ').strip() # choice3='五道口'
    # if choice3 == 'b':break
    # if choice3 == 'q':
    # tag=False
    # break
    # if choice3 not in menu3: continue
    #
    # while tag:
    # menu4 = menu3[choice3] #
    # for key in menu4:
    # print(key)
    #
    # choice4 = input('第四层>>: ').strip() # choice1='北京'
    # if choice4 == 'b':break
    # if choice4 == 'q':
    # tag=False
    # break
    #
    # if choice4 not in menu4: continue

    #方法二:


    #逻辑分析:
    #1、拿到当前层的菜单字典
    #2、循环打印字典的key
    #3、接收用户输入
    #4、进入下一层,需要先拿到下一次层的字典

    layers=[menu,]
    while True:
    if len(layers) == 0:break
    # 1、拿到当前层的菜单字典
    current_layer=layers[-1]
    # 2、循环打印字典的key
    for key in current_layer:
    print(key)
    # 3、接收用户输入
    choice=input('>>: ').strip()
    if choice == 'q':break
    if choice == 'b':
    layers.pop(-1)
    continue
    if choice not in current_layer:continue
    # 4、进入下一层,需要先拿到下一次层的字典
    layers.append(current_layer[choice])

  • 相关阅读:
    利用开源数据集进行钓鱼邮件检测——数据量还是很少啊,黑+白1万多条
    通过GAN绕过基于机器学习的IDS检测系统,IDSGAN(也是对IDS ML检测算法进行绕过,数据集使用NSL-KDD,DoS、U2R、R2L三种攻击)——也有最新防御的方法
    Mac 微信截图快捷键
    Mac M1 Brew配置nginx开机自启动,解决nginx自启动不成功问题
    Mac 停掉自带的Apache服务
    Mac如何卸载软件
    Mac brew 管理服务
    Mac vscode 跳转函数
    Mac vscode修改文件名
    Mac 使用phpmyadmin
  • 原文地址:https://www.cnblogs.com/maojiang/p/8689240.html
Copyright © 2020-2023  润新知