Python开打Day06(练习)

print('______________________________一__________________________________')

li = [11,22,33,44,55]#建立一个列表
def aaa(a):#创建一个函数并传参
    if a > 33:#判断传进来的参数大于33
        return a#如果传进来的参数大于33返回参数,否则不返回
b = filter(aaa,li)#使用filter内置函数执行,执行完成后是一个对象需要循环输出
for i in b:#循环输出使用filter内置函数执行后的结果
    print(i)

print('______________________________二__________________________________')

a = filter(lambda x : x > 33,[11,22,33,44,55])#使用lambda和filter内置函数完成数字大于33的返回,同样需要循环输出
for i in a:
    print(i)

print('______________________________三__________________________________')

li = [11,22,33,44,55]#定义一个列表
def aab(a):#定义一个函数并可以传参数
    if a%2 == 1:#判断a除2取余得1的
        return a+100#判断成功后返回传进来的参数并且给参数的值加100
    return a#判断不成功的返回当前传进来的参数
a = map(aab,li)#使用内置函数执行自定义函数并传列表进去
for i in a:#应为map函数执行完成后也是对象需要循环输出
    print(i)

print('______________________________四__________________________________')

a = map(lambda x:x+100 if x%2 == 1 else x,[11,22,33,44,55])#使用lambda和map内置函数完成数字是奇数的加100返回,不是奇数的返回换进来的参数,同样需要循环输出
for i in a:
    print(i)

print('______________________________五__________________________________')

for i in range(1,11):#循环1到10数字
    print('第%s章'%i)#自定义输出当前循环的数字
    for ii in range(1,10):#循环1到9数字
        print('%s.%s'%(i,ii))#自定义输出,每一次都是用上一层循环的值在前面

print('______________________________六__________________________________')

def asd(a):#定义一个变量,并且传一个参数
    if a == 7:#判断传进来的参数是不是7
        return 7#判断成功穿件来的参数是7就退出函数返回7
    return a * asd(a+1)#判断不通过返回当前使用的参数乘继续函数执行参数+1
print(asd(1))#输出最后得到的结果

print('______________________________七__________________________________')

l1 = [22,55,11,66,33,77,44,221,6,33,7,4,32]#定义一个列表
l2 = []#定义一个空的列表
def abc(a,b):#自定义一个函数需要传两个参数
    ab=0#默认ab=0
    while True:   #while死循环
        if ab == len(a)-1: #判断ab等于当前参数a总长度-1
            break#如果判断成功退出循环
        a.sort()#判断不成功把传进来的a参数sort排列一下
        b.insert(0,a[ab])#向b空列表的第0个位置插入sort后的值并索引为ab当前值的
        ab+=1#向ab空列表添加完成后将ab+1
    return b#当死循环执行结束后返回b参数
print(abc(l1,l2))#输出函数执行完成后返回的结果

print('______________________________八__________________________________')

def outer(func):#定义装饰器func是使用装饰器的函数
    def inter(*args,**kwargs):#定义一个函数可以传任何参数
        print('before')#输出before
        a=func(*args,**kwargs)#执行使用装饰器的函数
        print('after')#输出after
        return a#返回使用装饰器函数的返回值
    return inter#返回inter执行完成后的值
@outer#使用装饰器outer
def f1(arg):#自定义函数需要传一个参数
    print(arg+1)#输出传进来的参数+1后的值
@outer#使用装饰器outer
def f2(arg1,arg2):#自定义一个函数,需要传两个参数
    print(arg1+arg2)#输出传进来的两个参数相加的和
f1(2)#执行函数f1
print('___________________________________')#自定义输出为了更明显个看出执行结果
f2(2,3)#执行函数f2

print('______________________________九__________________________________')

import requests,re#导入模块requests和re
from xml.etree import ElementTree as ET#导入模块xml
ab = ['省:','市:','','','查询时间:','温度:','今日天气:','风向','','','','','明日温度:','明日天气:','明日风向:','','','后天温度:','后天天气:','后天风向:','','','',]#定义一个列表
a = requests.get('http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName?theCityName=%E4%B8%8A%E6%B5%B7').text#使用requests模块的get发放请求对应的网站并且转成内容
b = ET.XML(a)#解析成XML格式
for k,i in enumerate(b):#for循环解析后的XML格式并加上enumerate做索引列表位置
    if ab[k] == '':#判断当前循环的k对应的ab列表是一个空
        if re.search(r'^\d',i.text):#使用正则判断本次循环的内容是以数字开头
            continue#跳过本次循环进行下次循环
        print(i.text.strip())#判断失败后输出内容并去掉两边的空格或其他字符
    else:#判断当前ab对应的key不是''
        print(ab[k].strip(),i.text.strip())#自定义输出内容对应的列表内容加本次循环的值

print('______________________________十__________________________________')

import re,json#导入模块re和json
aa = []#定义一个空的列表
with open('db','r') as a,open('db2','w') as b:#使用with方法同时打开两个文件
    c = input('请输入:')#等待用户输入
    if c[0] == '{':#判断用户输入的第一个字符是{
        c = json.loads(c)#判断成功将用户输入的内容序列化
        for i in a:#循环db文件,默认是一行一行的循环
            aa.append(i)#每一次的循环添加到aa列表中
            abb = c['backend']#定义一个变量内容为用户字典中backend的值
        for i in aa:#循环aa列表
            a2 = re.search(r'^backend.'+abb+'*',i)#使用re模块拿到当前循环开头是backend的中间一个随意字符是用户传进来字典backend的值(abb)并取到最后
            if a2:#判断a2是否有值,如果有值向下执行没有就跳过
                b2 = c['record']#将用户传进来字典的record的值赋值给b2变量
                i = str(i+'        server '+str(b2['server'])+' weight '+str(b2['weight'])+' maxconn '+str(b2['maxconn'])+'\n')#使用字符串拼接的方法将每一个值拼接起来并赋值给i
            b.write(i)#向b写入当前i的内容
        exit("Good Bye")#结束程序输出Good Bye
    for i in a:#在上面判断时第一个字符不是{,执行该循环
        ab = re.search(r'^backend.*',i)#使用re模块的search方法找到db文件中以backend开头的值
        if ab:#判断re模块的search是否有值,如果有继续执行没有就跳过
            abc = ab.group().rsplit(' ')#判断ab对象有值,取出其值并以空格分隔成列表
            if c == abc[1]:#判断分隔后abc列表的第一个元素是用户输入的值
                for i in a:#循环从当前指针开始向后的值
                    if re.search(r'^backend',i):#判断本次循环的值开头是不是backend,如果是就退出循环
                        break#退出循环
                    aa.append(i.strip())#判断不成立将i的值添加的aa列表中并去掉前后两边的回车或者空格灯符号
    for i in aa:#循环aa列表
        print(i)#输出当前循环的值

 

posted @ 2016-05-29 17:40  WuYongQi。  阅读(188)  评论(0编辑  收藏  举报