跟着Alex老师学习抄了一遍shopping_list的购物程序

这段小程序基本上涵盖了,老师最近讲解的while循环,if,else,逻辑判断。还有重要的一点就是列表。并且在列表里面取下标。

取下标的方法,老师讲了两种。1、print (product_list.index(item),item)   #这样可以显示下标,最基本的方法

              2、利用enumerate来枚举列表中下标,具体表示方法如下。for index, item in enumerate (product_list):

                                                                                                          print (index,item)

利用取下标的方法,可以很容易取到列表里产品的序号。

另外就是字体去颜色,这个是需要死记的。

\033[32;1m %s \033[0m具体参照上面这个。附代码。
__author__ = "david.z"

product_list = [
    (‘苹果手机‘,5800),
    (‘苹果电脑‘,9800),
    (‘自行车‘,800),
    (‘高档手表‘,10600),
    (‘辛巴克咖啡‘,31),
    (‘Python书籍‘,120),
]
shopping_list = []
salary = input("输入你的工资:")
while True:

    if salary.isdigit():
        salary = int(salary)
        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)
                if user_choice < len(product_list) and user_choice >= 0 :
                    p_item = product_list[user_choice]
                    if p_item[1] <= salary: #买得起
                        shopping_list.append(p_item)
                        salary -= p_item[1]
                        print("你所购买的商品为 \033[32;1m%s\033[0m,你的余额还剩 \033[31;1m%s\033[0m"%(p_item,salary))
                    else:
                        print ("\033[41;1m您的余额仅剩%s,请尽快充值!!\033[0m"%salary)
                else:
                    print("您选择的[%s]不存在!!!"%user_choice)
            elif user_choice == ‘q‘or user_choice == ‘Q‘:
                print("---------shopping_list-----------")
                for p in shopping_list:
                    print(p)
                print("您的余额为:",salary)
                exit()
            else:
                print("您的输入有误")
    else:
        print("您的输入有误,请重新输入!!")
    break

原文地址:https://www.cnblogs.com/davidz/p/8306058.html

时间: 2024-10-14 01:08:32

跟着Alex老师学习抄了一遍shopping_list的购物程序的相关文章

“跟着西瓜去学习”之--绪论

写在前面的话:人工智能界有一种说法,认为机器学习是人工智能领域中最能够体现智能的一个分支,从历史来看,机器学习似乎也是人工智能中发展最为迅速的分支之一.Andrew Ng曾说机器学习将是未来人工智能的“电力”,可见机器学习的基础性和重要性.笔者本科在南京大学读的EE,出于对CS和人工智能的兴趣,上个学期有幸选到南京大学计算机与科学系机器学习与数据挖掘研究所(LAMDA)的周志华老师的<机器学习>课程,但是由于时间关系,断断续续的上完了该课程,感觉好多老师讲的精髓没有好好领悟,所以这个学期旁听了

【vue】跟着老马学习vue-数据双向绑定

学习了node.js教程,只能说是有了一定的了解,之前也了解了webpack和es6的核心内容,也看过vue2.0的官网教程,并结合视频看过项目,但是理解和运用仍然存在很多问题,接下来的一段时间,跟着老马学习vue 学习链接:http://aicoder.com/vue/preview/all.html#1 vue最大的特点就在于它的双向绑定,是一个前端的双向绑定类的框架. 一说到vue我们就应该立刻想到以下几部分:1.数据双向绑定:2.列表渲染.条件渲染:3.事件处理:4.生命周期:5.组件化

跟着杨中科学习asp.net之dom

Dom教程 使用javascript操作dom进行dhtml开发,目标:能够使用javascript操作dom实现常见的dhtml效果 Dom就是html页面的模型,将每个标签都做成为一个对象 ,javascript通过调用dom中的属性.方法就可以对网页中的文本框.层等元素进行编程控制,比如通过操作文本框的dom对象,就可以读取文本框中的值.设置文本框中的值 Dom也像winform一样,通过事件.属性.方法进行编程 Javascript→dom就是c#→.net framework. Css

跟着杨中科学习asp.net之javascript

Dom教程 使用javascript操作dom进行dhtml开发,目标:能够使用javascript操作dom实现常见的dhtml效果 Dom就是html页面的模型,将每个标签都做成为一个对象 ,javascript通过调用dom中的属性.方法就可以对网页中的文本框.层等元素进行编程控制,比如通过操作文本框的dom对象,就可以读取文本框中的值.设置文本框中的值 Dom也像winform一样,通过事件.属性.方法进行编程 Javascript→dom就是c#→.net framework. Css

跟着杨中科学习asp.net之html

第一节课 HTML基础加强班 l 什么是浏览器? 1. 浏览器就是接受浏览者的操作(打开一个网址.点击一个链接.点击一个按钮),然后帮浏览者去web服务器请求网页的内容(html格式返回),然后展现成人眼能够看得懂的可视化的页面的软件. l IE=浏览器?这个说法是错误的.IE是浏览器的一种,还有FireFox.Opera.Charome等,注意遨游(Maxthon).世界之窗.搜狗浏览器.360浏览器等并不是一种独立于IE的浏览器,其内核还是IE的内核,只不过是换了一个外壳而已,所以用遨游的不

跟着刚哥学习Spring框架--AOP(五)

AOP AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善.OOP引入封装.继承.多态等概念来建立一种对象层次结构,用于模拟公共行为的一个集合.不过OOP允许开发者定义纵向的关系,但并不适合定义横向的关系,例如日志功能.日志代码往往横向地散布在所有对象层次中,而与它对应的对象的核心功能毫无关系对于其他类型的代码,如安全性.异常处理和透明的持续性也都是如此,这种散布在各

跟着刚哥学习Spring框架--通过XML方式配置Bean(三)

Spring配置Bean有两种形式(XML和注解) 今天我们学习通过XML方式配置Bean 1. Bean的配置方式 通过全类名(反射)的方式   √ id:标识容器中的bean.id唯一. √ class:bean的全类名,通过反射的方式在IOC容器中创建Bean,所以要求Bean中必须有无参的构造器 2.依赖注入的方式 1)属性注入:通过setter方法注入Bean的属性值或依赖的对象 属性注入使用<Property>元素,使用name指定Bean的属性名称,使用value指定Bean的属

跟着刚哥学习Spring框架--Spring容器(二)

Spring容器 启动Spring容器(实例化容器) -- IOC容器读取Bean配置创建Bean实例之前,必须对它进行实例化(加载启动),这样才可以从容器中获取Bean的实例并使用.  Bean是Spring管理的基本单位,任何的Java对象和组件都被当成Bean处理,容器还负责管理Bean与Bean之间的依赖关系.  两种类型的启动实现   1.BeanFactory:IOC容器的基本实现,是Spring框架的基础设施,面向Spring本身: -- Spring容器最基本的接口就是BeanF

跟着刚哥学习Spring框架--创建HelloWorld项目(一)

1.Spring框架简介 Spring是一个开源框架,Spring是在2003年兴起的一个轻量级的开源框架,由Rod johnson创建.主要对JavaBean的生命周期进行管理的轻量级框架,Spring给JavaEE带来了春天. 2.Spring框架特点 √ 轻量级:不是说他的文件大小很小,指的Spring是非侵入性. 知识点:轻量级框架和重量级框架的区别 轻量级和重量级的框架是以启动程序所需要的资源所决定,比如EJB在启动程序的时候需要消耗大量的资源,内存和CPU,所以是重量级.√ 依赖注入