• 2015-11-08 第三天


    计算器:

    numx = "3 * 5 /-2 -(8*3/(20+3/2-5) + 4 /(3-2) * -3 ) "

    有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
    即: {'k1': 大于66 , 'k2': 小于66}
    
    v1 = [11,22,33,44,55,66,77,88,99,90]
    dicNum = {"k1":[],"k2":[]}
    
    for i in v1:
        if int(i) > 66:
            dicNum["k1"].append(i)
        else:
            dicNum["k2"].append(i)
    print dicNum["k1"]
    print dicNum["k2"]
    print dicNum
    v2 = [11,22,33,44,55,66,77,88,99,90]
    dicNum = {}
    for i in v2:
        if int(i) > 66:
            if "k1" in dicNum:
                dicNum["k1"].append(i)
            else:
                dicNum["k1"] = [i]
        else:
            if "k2" in dicNum:
                dicNum["k2"].append(i)
            else:
                dicNum["k2"] = [i]
    print dicNum["k1"]
    print dicNum["k2"]

    collection

    1. 默认字典(设置字典的默认格式) defaultdic

    2. 有序字典 orderdic

    3. 计数器 counter

    4. 队列 - 双向队列

    # 默认字典
    myDict = collections.defaultdict(list)
    myDict["k1"].append(1)
    print myDict["k1"]
    # 有序字典 orderdict
    有序字典是在字典里面维护了一个列表
    #计数器counter
    
    list1 = [11,22,33,44,5544,3322,111]
    tuple1 = (11,22,33,44,222,5555,2222)
    str1 = "2343252632642362hfidsafhsifoesagoewagewaglsanldsa;lsf;sahflaf;saf;la"
    c2 = collections.Counter(str1)
    print c2

    Queue

    1. 队列-单向队列 FIFO 弹夹
    import Queue
    q = Queue.Queue()
    q.put(2)
    q.put(3)
    q.put(23)
    print q.get()

    生成器

    练习:<br>有如下列表:
        [13, 22, 6, 99, 11]
     
    请按照一下规则计算:
    13 和 22 比较,将大的值放在右侧,即:[13, 22, 6, 99, 11]
    22 和 6 比较,将大的值放在右侧,即:[13, 6, 22, 99, 11]
    22 和 99 比较,将大的值放在右侧,即:[13, 6, 22, 99, 11]
    99 和 42 比较,将大的值放在右侧,即:[13, 6, 22, 11, 99,]
     
    13 和 6 比较,将大的值放在右侧,即:[6, 13, 22, 11, 99,]
    ...
    li = [13, 22, 6, 99, 11]
    
    for m in range(len(li)-1):
    
        for n in range(m+1, len(li)):
            if li[m]> li[n]:
                temp = li[n]
                li[n] = li[m]
                li[m] = temp
    
    print li


    函数

    代码块,按功能划分,

    函数式编程和面向过程编程的区别:

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

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

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

    • vars() == 当前模块的所有变量

    __doc__ 注释本文件

    __name__ 本文件名,如是当前执行文件,内容是__main__

    __file__ 文件路径

    • all() 只要有空,返回False
    • any() 只要有一个是真,返回True
    • reload() 重新加载引用文件
    • 自定义函数

    • def定义函数的关键字

    • 函数名

    • 函数声明

    • 函数参数

    形式参数,形参

    实际参数,实参

    动态参数

    def func(*args):
        print args
    
    
    li = [11,22,33,444,332,112]
    func(*li)
    1. 接受多个参数
    2. 内部自动构造元组
    3. 调用时,加*避免自动构造元组

    动态参数要调用字典的时候,需要用到**

    def func(**args):
        print args
    
    dic = {"echo":123,"rep":234}
    func(**dic)

    默认参数

    不传使用默认值

    • 函数返回值

    def email(arg):
        print arg
    
    
    if __name__ == "__main__":
        cpu = 100
        ram = 50
        disk = 500
        for i in range(1):
            if cpu > 90:
                alert = "cpu 出现问题"
                email(alert)
            if disk > 90:
                alert = "disk 出现问题"
                email(alert)
            if ram > 80:
                alert = "内存 出现问题"
                email(alert)

     

    • 导入函数


      文件操作

      obj = open("index.txt","r")
      
      obj.seek(10)
      #定位指针
      print obj.tell()
      #输出指针位置
      print obj.read()
      #输出内容
      print obj.tell()
      #输出指针位置

      r 读

      w 写

      a 追加

      &+

      r+ 读写

      w+ 类w

      a+ 类a

      打开文件的模式有:

      • r,只读模式(默认)。
      • w,只写模式。【不可读;不存在则创建;存在则删除内容;】
      • a,追加模式。【可读;   不存在则创建;存在则只追加内容;】

      "+" 表示可以同时读写某个文件

      • r+,可读写文件。【可读;可写;可追加】
      • w+,无意义
      • a+,同a

      "U"表示在读取时,可以将 自动转换成 (与 r 或 r+ 模式同使用)

      • rU
      • r+U

      "b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)

      • rb
      • wb
      • ab
    1. 相关阅读:
      Oracle:SQL语句--对表的操作——删除表
      Oracle:SQL语句--对表的操作——修改表名
      Oracle:SQL语句--对表的操作——修改表名
      Oracle:SQL语句--对表的操作—— 删除字段(即删除列)
      网络配置4:vlan间通信配置
      网络配置3:动态路由配置
      网络配置2:静态路由配置
      网络配置0:网络设备基础知识
      网络配置1:VLAN配置
      T-SQL之数据操作(一):增删改
    2. 原文地址:https://www.cnblogs.com/echorep/p/4957445.html
    Copyright © 2020-2023  润新知