zoukankan      html  css  js  c++  java
  • 内置函数,递归函数,模块与包,开发目录规范

    内置函数

    max()函数:
    salaries={
    'egon':3000,
    'alex':100000000,
    'wupeiqi':10000,
    'yuanhao':2000
    }
    res = max (salaries,key=lambda x :salaries[x])
    print(res)
    salaries_and_name = zip(salaries.values(),salaries.keys())#把数字放前边
    print(max(salaries_and_name))

    map 映射
    :会将迭代对象的每一个值进行修改,然后映射一个map对象中,再转化成列表或元组,但是只能转化一次
    函数内部也可以进行判断,但是映射返回值为None

    l = ['a','b','c','d','e']
    res = map(lambda x :x+'BB' ,l)

    res2 = map(lambda x :x+'BB' if x=='b'else None,l)

    print(list(res))
    print(list(res2))

    filter 过滤,
    将函数中返回结果为Ture的参数值过滤出来,但是能对参数进行修改

    l2 = [1,2,3,4,5,6,7,8]
    res = filter(lambda x :x if x >4 else None, l2)

    print(list(res))

    l3 = ['tank','tian','xiong','shao']
    res = filter(lambda x :x if x.endswith('n') else None, l3)
    print(list(res))

    reduce 合并,一行叠加
    from functools import reduce
    reduce(lambda x, y :x+y,range(1,101),0)

    递归函数

    重复(直接或间接)的调用本身,这是一种函数嵌套的表现形式。

    调用分为直接调用和间接调用

    python有递归调用深度

    设置调用深度
    import sys
    print(sys.getrecursionlimit())
    设置递归深度
    sys.setrecursionlimit(2000)
    print(sys.getrecursionlimit())

    单纯的递归没有意义,想有意义的两个规则:回溯,递归

    回溯:一层层递归调用下去,每一次重复问题的复杂度度都较上一层简单,回溯到最后必须有一个明确的结束条件

    递推:往回一层层推算出结果

    什么是模块?

    一系列功能的结合体,本质上一个个py文件

    可以更好的管理模块

    导入方式:

    import

    from 包/模块 import 模块/函数

    调用模块内函数名冲突,可以用AS起别名

    来源:

    1.python内置:import ,sys ,turtle , time , os

    2.三方模块 :requests

    3.自定义模块:

    表现形式:

    1使用python编写py文件

    2.编译后共享库,DLL或C或C++库

    3,包下面自带有__init__.py

    4.python解释器下py文件

    补:什么是包?

    内补包含__init__.py的文件夹存放模块,更好的管理模块

    循环导入问题解决:

    1.需要查找的名字放在导入模块上方

    2.将模块编程函数名称空间中的名字

    软件开发目录规范:

    注意:每次写项目要新建文件夹,新项目文件夹作为根目录

    项目的文件夹:

    conf——用于存放配置文件的文件夹,

    core——核心业务代码

    interface——接口

    db——用于存放文件数据

    lib——存放启动文件

    log——用于存放日志文件

    readme.txt——项目说明书,告诉使用者项目操作

  • 相关阅读:
    scp(secure copy)安全拷贝
    rsync 远程同步工具
    Ansible:遇到错误 "sudo: /etc/sudoers is world writable sudo: no valid sudoers sources found, quitting
    kafka数据分区的四种策略
    SwitchHosts—hosts管理利器
    HDU 2577 How to Type (字符串处理)
    HDU 1465 不容易系列之一 (错排公式+容斥)
    FZUOJ 2205 据说题目很水 (无三元环图最大边数)
    约瑟夫环问题 ( 最简单的数学解法)
    POJ 3279 Fliptile ( 开关问题)
  • 原文地址:https://www.cnblogs.com/fxsm/p/11869189.html
Copyright © 2011-2022 走看看