吴老的《selenium webdriver 实战宝典》出版了! 一.学习内容 * 综合列表 * 图书馆例子-实现列表增删改查 * 生成器 * 枚举 * 列表练习 二.综合列表 1. 一层列表[i**2 for i in range(10)] 2. 二层列表[i j for i in range(10) for j inrange(100,110)] 3. if条件判断列表[i for i in range(10) if i%2==0] 4. 字典综合列表a={'name':'yml','age':25} [k '=' str(v) fork,v in a.iteritems()] 5. 小写转大写综合列表b=['a','b','c'] [i.upper() for i in b] 6. 小练习-输出10到29的数字变成字符串法一: [str(i) for i in range(10,30)] 法二: [x y for x in '12' for y in '0123456789' ifx y not in '10'] 三.图书馆例子-实现列表的增删改查 # encoding = utf-8 print '*'*10, "welcome to mylibrary", '*'*10 print u''' add:增加新书 borrow:借书 lend:还书 query:查看所有的书 exit:退出程序 ''' print '*'*43 import sys def add(): book=raw_input('请输入您要添加的书籍:'.decode('utf-8').encode('gbk')) print u'您已添加成功!' list_book.append(book) def borrow(): book=raw_input('请输入您要借的书籍:'.decode('utf-8').encode('gbk')) try: list_book.remove(book) print u'您已借书成功!' except Exception,e: print u'图书馆中没有该书,不能借阅!' def lend(): book=raw_input('请输入您要还的书籍:'.decode('utf-8').encode('gbk')) print u'您已添加成功!' list_book.append(book) def query(): if len(list_book)==0: print u'抱歉,图书馆目前没有可供查阅的书籍!' else: print u'图书馆目前所有书籍为:' print ' '.join(list_book) def exit(): sys.exit() list_book=[] while True: try: command=raw_input('请输入你要进行的操作:'.decode('utf-8').encode('gbk')) exec(command "()") except Exception,e: print u'请输入如下指定操作:\nadd:增加新书\nborrow:借书\nlend:还书\nquery: 查看所有的书\nexit: 退出程序\n' 运行结果为:
四.生成器 1. 生成器和元组的区别生成器可以不必创建完成的list,而是在循环的过程中不断推出后面的元素,从而节省大量的空间,能够一边循环一边计算,称为生成器。 推导列表为[]包裹,而生成器为()包裹 b=[x for x in range(10)] b=(x for x in range(10)) b.next() 2. 生成器next()c=(i for i in range(10)) c.next() c=(i for i in ('a','b','c')) c.next() c=(i for i in ['test','yml']) c.next() 3. 生成器typec=(i for i in['test','yml']) type(c) 4. 生成器yield输出函数# -*- coding: utf-8 -*- def odd(): print 'step 1' yield 1 print 'step 2' yield 3 print 'step 3' yield 5 o = odd() print o.next() print o.next() print o.next() print o.next() #for i in o: #print i #可以遍历执行函数 五.枚举 for i,value in enumerate(['a','b',3,4]): #不仅打印结果还会输出序号 print i,value 六.列表练习 1. 练习题一:找到两个列表中不同的元素和相同元素代码为: #encoding=utf-8 u''' 找到两个列表中不同的元素和相同元素 ''' listA=[1,3,4,'a','b',[8,9,6]] listB=[1,'a',8] list_common=[] for i in listA: for j in listB: if i==j: list_common.append(j) print u'列表中相同元素为:%s' % list_common def delete_common(list): iflist not in list_common: return True listA=filter(delete_common,listA) listB=filter(delete_common,listB) print u'列表listA中不同的元素为:%s' %listA print u'列表listB中不同的元素为:%s' %listB 运行结果为: 2. 练习题二:数字和字母混合的list中,奇数位加1,偶数为加2代码为: #encoding=utf-8 u''' 数字和字母混合的list中,奇数位加1,偶数为加2 ''' import string def add_data(list): list_new=[] index=1 for i in list[::2]: if str(i) in string.ascii_letters: list_new.append(chr(ord(i) 1)) else: list_new.append(i 1) for i in list[1::2]: if str(i) in string.ascii_letters: list_new.insert(index,chr(ord(i) 2)) else: list_new.insert(index,(i 2)) index=index 2 return list_new list=[1,'a','a',4,3,'b',6] print add_data(list) 运行结果为: 3. 练习题三:递归处理嵌套的list,返回list代码为: #encoding=utf-8 u''' 递归处理嵌套的list,返回list ''' result=[] def print_list(datas): for data in datas: if isinstance(data,(list,tuple)): print_list(data) else: result.append(data) return result list_new=[1,2,[5,6],[3,4,['a','b',(3,4,'b')]]] print print_list(list_new) 运行结果为: 4. 练习题四:遍历list,但是list中元素的数据类型不定,有可能有嵌套的list,嵌套的tuple, dict等代码为: #encoding=utf-8 u''' 遍历list,但是list中元素的数据类型不定,有可能有嵌套的list,嵌套的tuple, dict等 ''' result=[] def print_list(datas): for data in datas: if isinstance(data,(list,tuple)): print_list(data) elif isinstance(data,dict): for key,value in data.items(): print key,value else: print data list_new=[1,2,[5,6],[3,4,['a','b',(3,4,'b')]],{'name':'yml','age':25},(1,'b')] print_list(list_new) 运行结果: 5. 练习题五:通过遍历list去掉重复部分代码为: #encoding=utf-8 u''' 通过遍历list去掉重复部分 ''' dict1={} def print_list(list_new): for i in list_new: dict1[i]=1 list_new=[] for i in dict1.keys(): list_new.append(i) return list_new list_new=[1,2,3,2,2,2,3,4,5] print print_list(list_new) 运行结果为: 6. 练习题六:键盘读入一字符串,逆序输出代码为: #encoding=utf-8 u''' 键盘读入一字符串,逆序输出 ''' #method1 while True: data=raw_input('请输入一串字符串:'.decode('utf-8').encode('gbk')) print data[::-1] 运行结果为: 安装喜马拉雅app,搜索“光荣之路”可以收听吴老和他的朋友们分享的35小时测试知识语音 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|