02-python 学习第二天,,今天学习了以下几个方


今天学习了以下几个方面的内容,虽然部分内容不能理解,跟着老师写出了代码。

列表、元组操作字符串操作字典操作集合操作文件操作字符编码与转码

程序练习

请闭眼写出以下程序。

程序:购物车程序

需求:

启动程序后,让用户输入工资,然后打印商品列表允许用户根据商品编号购买商品用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒可随时退出,退出时,打印已购买商品和余额

我的实现思路

1、先做一个商品列表product_list将商品存下来
2、新建一个空列表,作为购物列表shouping_list
3、新建一个工资列表,让用户输入工资,为了避免用户输入的不是数字,用int强转时报错做两件事情
3.1 判断用户输入的是不是数字
3.2 将用户输入的值强转成数字,因为列表的下标时数字,有序用于判断。

创建一个死循环做一下事情:
1、将商品列表遍历后显示给用户,要求有序号,我们可以把下标作为序号
2、让用户输入一个数字,选择购买的商品
2.1判断用户输入的是不是数字,如果时数字,就把它强转成数字类型,存到变量user_choice中。
2.2可以留下来后面再做:进一步判断用户输入的数目是否超过商品数目,如果超了就提示,不超就继续
3、判断用户是否买得起该商品
3.1根据用户输入的数字,把商品从列表里取下来
3.2判断是否可以买得起
3.3如果买得起就将列表添加到购物列表shouping_list取
3.4扣钱
如果买不起:
提示XX商品买不起,你的钱不够xxx
2.3可以留下来后面再做:用户输入的值超过了商品数量,就提示:没有这个商品
4、判断用户是否输入q
4.1 如果用户输入的Q
4.2 显示购物列表
4.3 显示余额
4.4 退出程序
4.5 如果用户输入的时其他字符,显示错误

代码部分

# -*- coding:utf-8 -*-# Author:Dwdarproduct_list = [  # 商品用列表存下来    (‘Iphoe‘, 5800),    (‘Mac Pro‘, 9800),    (‘Bike‘, 9800),    (‘Watch‘, 10600),    (‘Coffe‘, 31),    (‘Alex Python‘, 120),]shouping_list = []  # 一个空列表,他是购物车,用户购买的商品要放到这里salary = input("请输入工资:")  # 用户输入工资if salary.isdigit():  # 判断用户输入的是不是数字    salary = int(salary)  # 如果是数字,就int 强转成数字    while True:  # 进入死循环        for index, item in enumerate(product_list):  # 遍历商品列表,            # print(product_list.index(item),item) #效率低            print(index, item)        user_choice = input("选择商品>>>:")  # 让用户选择商品        if user_choice.isdigit():  # 如果用户输入的是数字            user_choice = int(user_choice)  # 如果是数字,就int 强转成数字            # 判断 用户输入的数字是否超过商品的学号,数量            if user_choice < len(product_list) and user_choice >= 0:                p_item = product_list[user_choice]  # 通过下标把商品价格取出来                if p_item[1] <= salary:  # 判断是否买得起                    shouping_list.append(p_item)  # 买得起就把商品存进,购物车里                    salary -= p_item[1]  # 扣钱                    # 向用户提示购买了什么,余额是多少                    print("商品 %s 已添加到购物车,你的余额是: \033[31;1m%s\033[0m" % (p_item, salary))                else:  # 如果判断时发现买不起                    print("\033[41;1m你的余额只剩[%s]啦,还买个毛线\033[0m" % salary)  # 给用户反馈买不起            else:                # 还有一种情况是,用户选择后没有这个商品,向用户提示                print("\033[41;1m你的选择的商品%s不存在!\033[0m" % user_choice)        elif user_choice == ‘q‘:  # 如果用户输入q,进入退出环节            print("----------------商品列表----------------")  # 列表标题,为了好看一点            for p in shouping_list:  # 遍历已购买商品列表                print(p)  # 打印商品列表            print("\033[31;1m您的余额是:%s\033[0m" % salary)  # 向用户提示余额情况            exit()  # 退出程序        else:            print("选择错误")  # 如果用户没有录入q,而录入了别的,我们向用户提示

02-python 学习第二天

评论关闭