尚-巴堤-Mori耶

新葡萄京娱乐场app 1

2016.1.3-2017.7.17

新葡萄京娱乐场app,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

关注 2596

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

冒泡算法

务求:给定2个列表 [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()

尚-巴堤-Mori耶。 

献花 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() 只要有3个是真,重返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()

Jean-Baptiste Maunier

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()

第陆天,贰零1四-1一-一5 冒泡算法
要求:给定一个列表 [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)

184cm

2016.10.7-8?

 

生日:

2016.11.03

– 导入函数


1990-12-22

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处理2进制文件时需标注)

  • rb
  • wb
  • ab

第三天,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 的值…

体重:

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

A型

2017.5.5

职 业:

2017.5.7

演员

2017.5.8-2017.7.17

结束学业院校:

所属集团:

代表文章:

发表评论

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

网站地图xml地图