1.将names = ['egon','alex_sb','wupeiqi','yuanhao']中的名字全部变大写

names = ['egon','alex_sb','wupeiqi','yuanhao']
new_names = []
new_names = [name.upper() for name in names]
print(new_names)


2.将names = ['egon','alex_sb','wupeiqi','yuanhao']中以sb结尾的名字过滤掉,然后保存剩下的名字
names = ['egon','alex_sb','wupeiqi','yuanhao']
names = [name for name in names if not name.endswith('sb')]
print(names)


3.求文件中a.txt中最长的行的长度(长度按字符个数算,需要使用max函数)
with open('a.txt',encoding='utf-8') as f:
    print(max(len(line) for line in f))

4.求文件a.txt中总共包含的字符个数.思考为何在第一次之后的n次sum求和得到的结果为0?
with open('a.txt',encoding='utf-8') as f:
    print(sum(len(line) for line in f))

5.思考题
因为关闭了文件上的i\o 操作


6.文件shopping.txt内容如下
mac,20000,3
lenovo,3000,10
tesla,1000000,10
chicken,200,1
求总共花了多少钱?
打印出所有商品的信息,格式为[{'name':'xxx','price':333,'count':3..}]
求单价大于10000的商品信息,格式同上


with open('shopping.txt','rt',encoding='utf-8') as f:
info = [line.split()for line in f]
a = sum(float(p)*int(c) for p,c in info)
print(a)


with open('shopping.txt','rt',encoding='utf-8') as f:
for line in f:
a = [{'name':line.strip('\n').split(',')[0],
'price':line.strip('\n').split(',')[1],
'count':line.strip('\n').split(',')[2]}]
print(a)


with open('shopping.txt','rt',encoding='utf-8') as f:
for line in f:
a = [{'name':line.strip('\n').split(',')[0],
'price':line.strip('\n').split(',')[1],
'count':line.strip('\n').split(',')[2]}]
if int(line.strip('\n').split(',')[1]) > 10000:
print(a)


6.
l=[1,2,10,30,33,99,101,200,301,311,402,403,500,900,1000]

def search(n,l):
    print(l)
    if len(l) == 0:
        print('not exists')
        return
    mid_index=len(l) // 2
    if n > l[mid_index]:
        l=l[mid_index+1:]
        search(n,l)
    elif n < l[mid_index]:
        l=l[:mid_index]
        search(n,l)
    else:
        print('find it')


search(3,l)



l=[1,2,10,30,33,99,101,200,301,402]

def search(num,l,start=0,stop=len(l)-1):
    if start <= stop:
        mid=start+(stop-start)//2
        print('start:[%s] stop:[%s] mid:[%s] mid_val:[%s]' %(start,stop,mid,l[mid]))
        if num > l[mid]:
            start=mid+1
        elif num < l[mid]:
            stop=mid-1
        else:
            print('find it',mid)
            return
        search(num,l,start,stop)
    else:
        print('not exists')
        return

search(301,l)








posted on 2018-10-10 21:50  海贼王。  阅读(174)  评论(0编辑  收藏  举报