Tim-皮高特-Smith

新葡萄京娱乐场app 1

2016.1.3-2017.7.17

2015-11-08 第三天,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"]

2015-11-15 第四天,2015-11-15

关注 284

2016.1.3

collection

# 默认字典
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

冒泡算法

新葡萄京娱乐场app,渴求:给定四个列表 [13,22,6,99,11]
通进程序落成让他们得以从小到大排序。

思路:让相近的多个数互比尺寸,存在大数就位于右侧。

自己的贯彻:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = 'lilon'
li = [33,11,88,77,44,345,223,113,555,23,3]
print li
print "**************************8"

#定义冒泡函数,计算排序,最大数放在右面
def maopao():
    #循环,从1开始,例如range(1,5) 1,2,3,4 注意没有5
    for n in range (1,len(li)):
        #循环,从0开始到 例如range(5-1 4) range(5-2 3) range(5-3 2) range(5-4 1)
        for m in range(len(li)-n):
            #给num1赋值 li[m]
            num1 = li[m]
            #给num2赋值 li[m+1]
            num2 = li[m+1]
            #比较num1 num2
            if num1 > num2:
                #通过临时变量temp交换li[m] 和 li[m+1]
                temp = num1
                li[m] = num2
                li[m+1] = temp

        print li
    print li
    pass


#定义一个主函数
def main():
    maopao()

#限制程序入口
if __name__ =="__main__":
    main()

献吻 0

2016.1.4

Queue

import Queue
q = Queue.Queue()
q.put(2)
q.put(3)
q.put(23)
print q.get()

详说修改配置文件的秘籍

暗中同意配置

global       
        log 127.0.0.1 local2
        daemon
        maxconn 256
        log 127.0.0.1 local2 info
defaults
        log global
        mode http
        timeout connect 5000ms
        timeout client 50000ms
        timeout server 50000ms
        option  dontlognull

listen stats :8888
        stats enable
        stats uri       /admin
        stats auth      admin:1234

frontend oldboy.org
        bind 0.0.0.0:80
        option httplog
        option httpclose
        option  forwardfor
        log global
        acl www hdr_reg(host) -i www.oldboy.org
        use_backend www.oldboy.org if www

backend www.oldboy.org
        server 100.1.7.9 100.1.7.9 weight 20 maxconn 3000

原配置文件

修改必要

1、查
    输入:www.oldboy.org
    获取当前backend下的所有记录

2、新建
    输入:
        arg = {
            'bakend': 'www.oldboy.org',
            'record':{
                'server': '100.1.7.9',
                'weight': 20,
                'maxconn': 30
            }
        }

3、删除
    输入:
        arg = {
            'bakend': 'www.oldboy.org',
            'record':{
                'server': '100.1.7.9',
                'weight': 20,
                'maxconn': 30
            }
        }

需求

自己的兑现

#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = 'lilon'
import os
import json

#定义好一个函数,用来做查找
def fetch(ha):
    backendlist = ha
    #先准备一个列表,在后面用来加入查到的backend字段下的server信息
    serverinfo = []
    # print "backend %s" %backendlist
    #使用with的方式打开文件,可以自动的关闭文件,减少我们出错误的可能
    with open ("oldboy.conf","r")as obj:
        """
        #灵活添加flag,使用flag做一个开关,匹配到了相关的backend就把flag设置为True,
        直到遇到了backend开头的其他的字段,就把flag设置为False,
        中间的就是我们需要的信息,使用列表的append()方法就可以添加了
        """
        flag = False
        #循环,一次一行,处理大文件必须的方式
        for line in obj:
            if line.strip() == "backend %s" % backendlist:
                flag = True
                continue
            #灵活性代码 startswitch方法 匹配开头是backend的行
            if flag and line.strip().startswith("backend"):
                flag = False
                break
            """
            #当我们确认了flag是True,
            意味着上面已经找到了相关的backend,
            而且把flag设置为了True了,
            所以我们现在可以通过append()方法来把相关的server info
            加入到了列表里面
            """
            if flag and line.strip():
                serverinfo.append(line.strip())
    if serverinfo:
        return serverinfo




#定义一个函数,做增加
def backendadd(**dict_info):
    fetch_list = []
    backend_title = dict_info.get("backend")
    current_record_pre = "server {server} weight {weight} maxconn {maxconn}"
    current_record = current_record_pre.format(**dict_info.get("record"))
    fetch_list = fetch(backend_title)
    if fetch_list:
        if current_record in fetch_list:
            pass
        else:
            fetch_list.append(current_record)
            with open("oldboy.conf","r") as objConf, open("conf.temp","w") as objTemp:
                flag = False
                isWrite = True
                for line in objConf:
                    if line.strip() == "backend %s" %backend_title:
                        objTemp.write(line)
                        flag = True
                        continue
                    if flag == True and line.strip().startswith("backend"):
                        flag = False
                    if flag == True:
                        if isWrite:
                            for new_line in fetch_list:
                                temp = "%s%s\n" %(" "*8,new_line)
                                objTemp.write(temp)
                            isWrite = True
                    else:
                        objTemp.write(line)
            if os.path.isfile("oldboy.bak"):
                os.remove("oldboy.bak")
            os.rename("oldboy.conf","oldboy.bak")
            os.rename("conf.temp","oldboy.conf")
            return True
    else:
        with open("oldboy.conf","r") as objConf, open("conf.temp","w") as objTemp:
            for line in objConf:
                objTemp.write(line)
            objTemp.write("backend %s\n" %backend_title)
            objTemp.write("%s%s\n" %(" "*8,current_record))
        if os.path.isfile("oldboy.bak"):
                os.remove("oldboy.bak")
        os.rename("oldboy.conf","oldboy.bak")
        os.rename("conf.temp","oldboy.conf")
        return True

def delitem(**dict_info):
    fetch_list = []
    backend_title = dict_info.get("backend")
    current_record_pre = "server {server} weight {weight} maxconn {maxconn}"
    current_record = current_record_pre.format(**dict_info.get("record"))
    fetch_list = fetch(backend_title)
    if fetch_list:
        if current_record in fetch_list:
            with open("oldboy.conf","r") as objConf, open("conf.temp","w") as objTemp:
                if len(fetch_list) > 1:
                    for line in objConf:
                        if line.strip() == current_record:
                            continue
                        else:
                            objTemp.write(line)
                else:
                    for line in objConf:
                        if line.strip() == "backend %s" %backend_title:
                            continue
                        if line.strip() == current_record:
                            continue
                        else:
                            objTemp.write(line)
            if os.path.isfile("oldboy.bak"):
                os.remove("oldboy.bak")
            os.rename("oldboy.conf","oldboy.bak")
            os.rename("conf.temp","oldboy.conf")
            return True
        else:
            pass
    else:
        pass
    pass

def backup():
    os.remove("oldboy.conf")
    os.rename("oldboy.bak","oldboy.conf")



#定义一个主函数
def main():
    ha = "buy.oldboy.org"
    dictItem = {
            'backend': 'buy.oldboy.org',
            'record':{
                'server': '101.1.71.90 100.1.7.90',
                'weight': 22,
                'maxconn': 3000
            }
        }
    userInput = int(raw_input("hi plese input your choice:\n 1.search \n 2.add \n 3.del \n"))
    if userInput == 1:
        print "you select search."
        # userInputSearch = raw_input("input a backend url")
        searchEnd = fetch(ha)
        if searchEnd:
            for line in searchEnd:
                print line
            print "search End!"
        else:
            print "sorry not found!"

    elif userInput == 2:
        print "you select add."
        addEnd = backendadd(**dictItem)
        if addEnd:
            print "add successful"
        else:
            print "error!!!"

    elif userInput == 3:
        print "you select del."
        delEnd = delitem(**dictItem)
        if delEnd:
            print "del successful"
        else:
            print "no file in their"
            if os.path.isfile("oldboy.temp.conf"):
                os.remove("oldboy.temp.conf")

    elif userInput == 4:
        print "this is a super command"
        backup()
    else:
        print "sorry, i can not do that!!!"



#限制程序入口
if __name__ =="__main__":
    main()

 

Tim-皮高特-Smith。献花 0

2016.1.12

生成器

练习:<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

 


lambda表达式

学学条件运算时,对于简易的 if else 语句,可以运用长富运算来代表,即:

# 普通条件语句
if 1 == 1:
    name = 'wupeiqi'
else:
    name = 'alex'

# 三元运算
name = 'wupeiqi' if 1 == 1 else 'alex'

对此简易的函数,也存在一种便利的意味方法,即:lambda表达式

#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = 'EchoRep'

def func1(arg):
    return arg + 1
func2 = lambda a: a+1
func3 = lambda a,b: a+b




def lambdax():
    result = func1(100)
    print result
    result2 = func2(1000)
    print result2
    result3 = func3(100,211)
    print result3






#定义一个主函数
def main():
    lambdax()
    pass


#限制程序入口
if __name__ == "__main__":
    main()

lambda存在意义就是对简易函数的简洁表示

 

蒂姆-皮高特-史密斯

2016.1.30

函数

代码块,按效益划分,

函数式编制程序和面向进程编制程序的区分:

  • 函数式:将某作用代码封装到函数中,日后便无需另行编写,仅调用函数就可以
  • 面向对象:对函数举行归类和打包,让开垦“越来越快更加好越来越强…”

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

  • def:表示函数的首要字
  • 函数名:函数的名目,日后依靠函数名调用函数
  • 函数体:函数中开始展览一文山会海的逻辑总结,如:发送邮件、总结出
    [11,22,38,888,2]中的最大数等…
  • 参数:为函数体提供数据
  • 重回值:当函数试行实现后,能够给调用者重返数据。

 

map

遍历连串,对队列中每一种元素实行操作,最后获得新的队列

新葡萄京娱乐场app 2

li = [11, 22, 33]

new_list = map(lambda a: a + 100, li)

li = [11, 22, 33]
sl = [1, 2, 3]
new_list = map(lambda a, b: a + b, li, sl)

#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = 'EchoRep'

def func1(args):
    return args ** 128

#定义一个主函数
def main():
    li =[2,3,4]
    l1 = [1,2,3]
    l2 = [2,3,4]
    l3 = [3,4,5]
    print map(lambda a,b,c:a+b+c,l1,l2,l3)
    pass


#限制程序入口
if __name__ == "__main__":
    main()

 

 

 

英文名:

2016.2.14

– 内置函数新葡萄京娱乐场app 3

  • vars() == 当前模块的全数变量

__doc__ 注释本文件
__name__ 本文件名,如是当前执行文件,内容是__main__
__file__ 文件路径
  • all() 只要有空,重返False
  • any() 只要有三个是真,再次回到True
  • reload() 重新加载引用文件

 

 

filter

对此种类中的成分进行筛选,最后取得符合条件的行列

 

 

新葡萄京娱乐场app 4

 

li = [11, 22, 33]

new_list = filter(lambda arg: arg > 22, li)

#filter第一个参数为空,将获取原来序列

#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = 'EchoRep'


li = [11,22,33,44]

#定义一个主函数
def main():
    print filter(lambda a:a>33,li)
    pass


#限制程序入口
if __name__ == "__main__":
    main()

Tim Pigott-Smith

2016.4.30

– 自定义函数

 

  • ### def定义函数的要紧字

  • ### 函数名

  • ### 函数宣称

  • ### 函数参数

 

性别:

2016.6.20?

款式参数,形参

reduce

用来累计操作,如累加,累乘等

#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = 'EchoRep'


li = [1,2,3,4,5,6,7,8,9]
#定义一个主函数
def main():
    print reduce(lambda arg1,arg2:arg1*arg2,li)


#限制程序入口
if __name__ == "__main__":
    main()

2016.6.23?

其实参数,实参

yield

一时跳出了函数,不过下次得以继续应用,和continue要区分开

#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = 'EchoRep'

def func1():
    yield 1
    yield 2
    yield 3

def mrange(arg):
    seed = 0
    while True:
        seed = seed + 1
        if seed > arg:
            return
        else:
            yield seed



#定义一个主函数
def main():
    for i in mrange(10):
        print i


#限制程序入口
if __name__ == "__main__":
    main()

第4日,二〇一五-1壹-一5 冒泡算法
供给:给定3个列表 [13,22,6,99,11]
通进程序实现让她们能够从小到大排序。 思路:让周边的三个数互比…

民族:

2016.7.11

动态参数

def func(*args):
    print args


li = [11,22,33,444,332,112]
func(*li)

动态参数要调用字典的时候,要求运用**

def func(**args):
    print args

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

 

 

身高:

2016.9.30

默认参数

不传使用暗许值

 

  • ### 函数重回值

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)

185cm

2016.10.7-8?

 

生日:

2016.11.03

– 导入函数


体重:

2016.11.11

文本操作

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

第三天,2015-11-08 计算器: numx = “3
* 5 /-2 -(8*3/(20+3/2-5) + 4 /(3-2) * -三 ) ” 有如下值集合
[11,22,33,44,55,66,77,88,99,90…],将富有大于 6陆 的值…

生肖:

2017.1.28

国籍:

2017.1.29

英国

2017.2.1

星座:

2017.2.23-25

出生地:

2017.2.29-2017.4.1

血型:

2017.4.1

职 业:

2017.4.14

演员

2017.4.21-4.24

毕业高校:

2017.5.3

所属集团:

2017.5.5

代表作品:

2017.5.7

2017.5.8-2017.7.17

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图