day08--作业

1、有列表['alex',49,[1900,3,18]],分别取出其中的年月日

通过解压赋值来取值
#!/usr/bin/env python
#-*- coding:utf-8 -*-

def main():
    info_list = ['alex',49,[1900,3,18]]
    name,age,birth_list = info_list
    birth_year,birth_mon,birth_day = birth_list
    print('姓名:{0}
年龄:{1}
出生年份:{2}
出生月份:{3}
出生day:{4}'.format(
          name,age,birth_year,birth_mon,birth_day))

if __name__ == '__main__':
    main()

2、用列表的insert和pop方法模拟队列

队列的原理:先进先出,类似于火车过山洞

>>> list_1 = []
>>> list_1.insert(0,'egon')
>>> list_1.insert(1,'male')
>>> list_1.insert(2,18)
>>> print(list_1)
['egon', 'male', 18]
>>> 

>>> list_1.pop(0)
'egon'
>>> list_1.pop(0)
'male'
>>> list_1.pop(0)
18
>>> print(list_1)
[]
>>> 

3、使用insert和pop模拟堆栈

堆栈:先进后出,类似于在图书馆取书,最先拿的书总是在下面

>>> list_1 = []
>>> list_1.insert(0,'tank')
>>> list_1.insert(1,'male')
>>> list_1.insert(2,19)
>>> print(list_1)
['tank', 'male', 19]
>>> 

>>> list_1.pop(-1)
19
>>> list_1.pop(-1)
'male'
>>> list_1.pop(-1)
'tank'
>>> print(list_1)
[]
>>> 

4、简单购物车,要求实现以下要求

目标要求:
实现打印商品详细信息,用户输入商品名和购买个数,则将商品名,价格,购买个数以三元组形式加入购物列表,如果输入为空或其他非法输入则要求用户重新输入  
msg_dic={
'apple':10,
'tesla':100000,
'mac':3000,
'lenovo':30000,
'chicken':10,
}

代码如下:

#!/usr/bin/env python
#-*- coding:utf-8 -*-

from prettytable import PrettyTable

msg_dic = {'apple':10,
           'tesla':100000,
           'mac':3000,
           'lenovo':30000,
           'chicken':10}

def main():
    goods_info = []
    total = 0
    while 1:
        tb = PrettyTable()
        tb.field_names = ['商品名称','商品价格']
        tb.align['商品名称'] = 'l'   # 以“商品名称”字段左对齐
        tb.align['商品价格'] = 'c'   # 以“商品价格字段”居中对齐
        for k,v in msg_dic.items():
            tb.add_row([k,v])
        print(tb.get_string(sortby='商品价格',reversesort=True)) #对商品列表进行排序
        goods_choice = input('请输入你要购买的商品:').strip()
        if goods_choice in msg_dic.keys():
            num_choice = int(input('请输入购买{}的数量:'.format(goods_choice)))
            goods_info.append([goods_choice,msg_dic.get(goods_choice),num_choice])
            _continue = input('购买成功,是否继续添加商品(y,n):').strip().lower()
            if _continue == 'y':
                continue
            else:
                print('用户选择n或者输入其他非法字符,退出!')
                break
        else:
            print('输入为空或者其他非法字符,请重新输入!')
    #输出购物车信息
    tb_shop = PrettyTable()
    tb_shop.field_names = ['商品名称','商品单价','商品数量','金额小计']
    tb_shop.align['商品名称'] = 'l'
    tb_shop.align['商品单价'] = 'c'
    tb_shop.align['商品数量'] = 'c'
    tb_shop.align['金额小计'] = 'c'
    for item in goods_info:
        name_of_goods,price_of_goods,num_of_goods = item
        sum_of_money = price_of_goods * num_of_goods
        total += sum_of_money
        tb_shop.add_row([name_of_goods,price_of_goods,num_of_goods,sum_of_money])
    print(tb_shop.get_string(sortby='金额小计',reversesort=True))
    print('您一共消费{}元,欢迎下次光临!'.format(total))

if __name__ == '__main__':
    main()
View Code

5、有如下集合[11,22,33,44,55,66,77,88,99,90...],将所有值大于66的值存放于字典的第一个key中,所有小于66的放在字典的第二个key中

#!/usr/bin/env python
#-*- coding:utf-8 -*-

def main():
    list_1 = [11,22,33,44,55,66,77,88,99,90]
    d = {}
    d['k1'] = [i for i in list_1 if i > 66]
    d['k2'] = [j for j in list_1 if j < 66]
    print(d)

if __name__ == '__main__':
    main()

6、统计字符串 s='hello alex alex say hello sb sb'中每个单词的个数

#!/usr/bin/env python
#-*- coding:utf-8 -*-

def main():
    s = 'hello alex alex say hello sb sb'
    list_s = s.split(' ')
    dict_word = {}
    for  i in range(len(list_s)):
        dict_word.setdefault(list_s[i],list_s.count(list_s[i]))
    for k,v in dict_word.items():
        print('单词{0}的个数为{1}'.format(k,v))

if __name__ == '__main__':
    main()

方法二如下:(通过set)

#!/usr/bin/env python
#-*- coding:utf-8 -*-

def main():
    s = 'hello alex alex say hello sb sb'
    list_s = s.split(' ')
    set_word = set(list_s)
    for item in set_word:
        print('单词{0}的个数为{1}'.format(item,list_s.count(item)))

if __name__ == '__main__':
    main()
原文地址:https://www.cnblogs.com/surpass123/p/12463414.html