效果图:

实现代码:

menu = [0,5000,500,9000,3000,30,50,7000,70,40]
name = [0,"iphone","bicycle","Mac book","Meizu S16","coffee","backpack","computer","table","chair"]
msg = """
Welcome to Mr.Zhu's shop
1.iphone 5000
2.bicycle 500
3.Mac book 9000
4.Meizu S16 3000
5.coffee 30
6.backpack 50
7.computer 7000
8.table 70
9.chair 40
0.exit
"""
money = int(input("Your Salary:"))
gets = 1
shop_list = []
spend = 0
print(msg)
while(gets):
gets = int(input("Please input the number of goods:"))
if(gets != 0): spend = menu[gets]
if(money > spend):
shop_list.append(name[gets])
money -= spend
print("Successfully put the good in shop list,and you have remain",money)
else:
print("You not have enough money!")
else:
gets = 0
print("Welcome to come Mr.Zhu's shop again\nYou have bought :",shop_list,"\nYour remain money is:",money) 解析:
输入你的薪水,然后选择想要购买的物品,购物车自动帮告诉你账户余额并告诉你是否足够购买该商品。
很简单的两个列表,一个存价格,一个用于返回购物清单的名字,其中最开始的打印菜单可以通过循环等将两个列表结合起来打印,也可以以例子中固定模板的形式打印,循环打印代码为:
msg = 0
for i in range(0,9):
msg = i + 1
if(i == 0):
print("Welcome to Mr.Zhu's shop")
print(i+1,".",name[msg]," \t",menu[msg])
if(i == 8):
print("0 . exit")
有一点,用打印输出容易对不齐价格,因为商品名称可能有些长有些短,如果想避免这个问题:1.更改商品名称,争取几个名字字符相差不超过4个字符(\t的大小)2.增加一个判断最长名称长度的if,然后通过给短的多加\t来实现等长。

Python学习之列表--自动超市购物车的更多相关文章

  1. Python学习02 列表 List

    Python学习02 列表 List Python列表 List Python中的列表(List)用逗号分隔,方括号包围(comma-separated values (items) between ...

  2. python学习笔记——列表生成式与生成器

    1.列表生成式(List Comprehensions) python中,列表生成式是用来创建列表的,相较于用循环实现更为简洁.举个例子,生成[1*1, 2*2, ... , 10*10],循环用三行 ...

  3. Python学习3——列表和元组

    一.通用序列操作——索引.切片.相加.相乘.成员资格检查 1.索引,正序从0开始为第一个元素,逆序从-1开始,-1为最后一个元素 >>> greeting[0] 'h' >&g ...

  4. python学习之列表的定义以及增删改查

    列表定义: >>> name['lily','lucy','tom'] >>> nums = [11,22,33,'100','lily'] #python中的列表 ...

  5. Python学习三|列表、字典、元组、集合的特点以及类的一些定义

    此表借鉴于他人 定义 使用方法 列表 可以包含不同类型的对象,可以增减元素,可以跟其他的列表结合或者把一个列表拆分,用[]来定义的 eg:aList=[123,'abc',4.56,['inner', ...

  6. Python学习06——列表的操作(2)

    笨办法学Python第39节 之前用的第三版的书,昨天发现内容不对,八块腹肌又给我下了第四版,这次的内容才对上.本节的代码如下: ten_things = "Apples Oranges C ...

  7. python学习04——列表的操作

    笨办法学python第38节 如何创建列表在第32节,形式如下: 本节主要是讲对列表的操作,首先讲了 mystuff.append('hello') 的工作原理,我的理解是,首先Python找到mys ...

  8. python学习之列表语法

    1.列表 1 list.append(obj)在列表末尾添加新的对象2 list.count(obj)统计某个元素在列表中出现的次数3 list.extend(seq)在列表末尾一次性追加另一个序列中 ...

  9. python学习笔记——列表操作

    python列表操作——增 append:追加一条数据到列表的最后 name = ["Zhangsan","XiongDa","Lisi"] ...

随机推荐

  1. day17_内置函数_文件处理

    20180729    修改部分代码 更新:# # 5.max与列表指定参数 20180728    初次上传 #!/usr/bin/env python # -*- coding:utf-8 -*- ...

  2. day 80 Vue学习一之vue初识

    Vue学习一之vue初识   本节目录 一 Vue初识 二 ES6的基本语法 三 Vue的基本用法 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 vue初识 vue称为渐进式js框架 ...

  3. MyBatis的查询

    MyBatis的查询 在上一个MyBatis的核心API中介绍了SqlSessionFactoryBuilder.SqlSessionFactory以及SqlSession是什么,它们都有什么作用,本 ...

  4. 2019-10-4-C#-极限压缩-dotnet-core-控制台发布文件

    title author date CreateTime categories C# 极限压缩 dotnet core 控制台发布文件 lindexi 2019-10-04 14:59:36 +080 ...

  5. 在双重for循环内部使用async异步请求axios中遇到的问题

    在methods中的方法 async getPro () { let _this = this let newArr = [] await axios.get(`api/v1/dailyProTbms ...

  6. 廖雪峰Java11多线程编程-3高级concurrent包-6ExecutorService

    Java语言内置多线程支持: 创建线程需要操作系统资源(线程资源,栈空间) 频繁创建和销毁线程需要消耗大量时间 如果可以复用一个线程 线程池: 线程池维护若干个线程,处于等待状态 如果有新任务,就分配 ...

  7. 0817NOIP模拟测试赛后总结

    吐槽一句:话说NOIP都取消了还叫NOIP模拟真的好么 于是乎我再次爆炸……(0+20+50=70 rank26) 赛时状态 赛时的状态依旧不佳.不过还是硬逼着自己把三道题都读完,然后开始对出题人静坐 ...

  8. vagrant网站中box下载方法

    假设需要下载Laravel/homestead这个包. 首先定位到地址:https://app.vagrantup.com/laravel/boxes/homestead/versions/8.0.0 ...

  9. JavaScript 数组(Array)方法(二)

    forEach ES5新增的方法,Arr.forEach((value, index,array)=>{}); let arr=['a','b','c']; arr.forEach((val,i ...

  10. poj 2774 字符串哈希求最长公共子串

    Long Long Message #include <iostream> #include <algorithm> #include <cstdio> #incl ...