Python开打Day06(练习)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)#输出当前循环的值
以上是关于Python开打Day06(练习)的主要内容,如果未能解决你的问题,请参考以下文章
Python练习册 第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-),(http://tieba.baidu.com/p/2166231880)(代码片段