首页 > 学院 > 开发设计 > 正文

2015-11-08第三天

2019-11-14 16:54:48
字体:
来源:转载
供稿:网友

计算器:

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
有序字典是在字典里面维护了一个列表
#计数器counterlist1 = [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 Queueq = 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] = tempprint li

 


函数

代码块,按功能划分,

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

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

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

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

 

  • 内置函数

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

__doc__ 注释本文件

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

__file__ 文件路径

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

 

 

  • 自定义函数

 

  • def定义函数的关键字

  • 函数名

  • 函数声明

  • 函数参数

形式参数,形参

实际参数,实参

动态参数

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

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

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

 

 

默认参数

不传使用默认值

 

  • 函数返回值

def email(arg):    print argif __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 /n /r/n自动转换成 /n (与 r 或 r+ 模式同使用)

  • rU
  • r+U

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

  • rb
  • wb
  • ab

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表