美高梅注册 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

  Hong Kong时间十月16日黎明(英文名:lí míng),2012/2013赛季意国杯1/4决赛,国际公州足球俱乐部(F.C Internazionale Milano)坐镇主场对阵德雷斯顿。90分钟健康时间内,双方战成2-2平,延长赛第120分钟,国米由拉OPPO演出绝杀!3-2,蓝黑军团劳顿杀入四强,半决赛他们将面对罗马与内罗毕的胜者。

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

冒泡算法

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

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

 

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

函数

代码块,按职能区划,

函数式编程和面向过程编程的不相同:

  • 拉One plus加时赛最终1分钟绝杀。函数式:将某成效代码封装到函数中,日后便无需另行编写,仅调用函数即可
  • 面向对象:对函数举行归类和打包,让开发“更快更好更强…”

函数的概念首要有如下要点:

  • def:表示函数的重大字
  • 函数名:函数的称呼,日后依照函数名调用函数
  • 函数体:函数中举办一与日俱增的逻辑总结,如:发送邮件、统计出
    [11,22,38,888,2]中的最大数等…
  • 参数:为函数体提供数据
  • 重返值:当函数执行完结后,可以给调用者重回数据。

 

map

遍历连串,对队列中每个元素举行操作,最后取得新的队列

美高梅注册 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

– 内置函数美高梅注册 3

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

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

 

 

filter

对于系列中的元素进行筛选,最后取得符合条件的队列

 

 

美高梅注册 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()

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

第八天,2015-11-15 冒泡算法
必要:给定一个列表 [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)

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

2017.5.5

2017.5.7

2017.5.8-2017.7.17

网站地图xml地图