[基础语法] python语法之列表、判断、循环例子

news2024/11/18 0:24:56

文章目录

  • 购物车案例
    • 已发布:
    • 整体框架
    • 打印商品列表
    • 将商品加入购物车
    • 打印购物车、计算总金额
    • 完整代码
    • 另外说明

购物车案例

已发布:

  • python判断语句
  • python循环语句
  • python之列表list
  • 购物车案例
  • 后续暂时不更新,有想要的部分,可以后台留言。有时间就会更新上…

问题描述:一个水果店卖有6种水果,分别是苹果、香蕉、梨、桃子、草莓、菠萝。价格(元\斤)分别为:21、10、14、66、80、6。以上价格仅是作为练习的数据,不具有现实意义

要求:按照一定的格式输出商品的种类和价格。用户通过输入商品的序号,把商品加到购物车。结账时显示购物车中的商品,并输出总金额。

整体框架

购物车案例有三个要求:

  • 输出商品的列表(有序号、商品名、单价)、并且要看上去整齐
  • 提示用户选择要购买的商品,并将其加入购物车
  • 结账时:显示购物车的内容、计算总金额。输出时要求整齐。

考虑以上要求,在设计代码框架时首先就需要思考如何存取数据的问题。有两个数据是全局都需要用到的:商品的名称和单价、购物车的内容。同时还要思考,在客户把商品加入到购物车时,在购物车数据中存储的数据内容是什么,是存储商品的序号?还是存储商品的全部信息?

目前已经学习了列表,那么考虑用列表存储商品的信息和购物车的信息。并且购物车只存储商品的序号。
整体框架代码如下:

products = [["苹果", 21], ["香蕉", 10], ["梨", 14], ["桃子", 66], ["草莓", 80], ["菠萝", 6]]  # 商品的信息
shopping_cart = []  # 存放购物车的序号
if __name__ == "__main__":
    print_pro()  # 打印商品列表
    buy_sth()  # 向购物车中添加商品
    print_cart()  # 打印购物车中商品的信息,并计算总金额

打印商品列表

商品信息是使用列表进行存储的,每个商品的名称和单价也是一个列表,那么就可以通过for循环使用下标进行打印商品的信息和价格。代码如下:

def print_pro():
    print("-" * 7, end="")
    print("商品列表", end="")
    print("-" * 7)
    for i, prod in enumerate(products):   # 列表可以通过枚举类型enumerate,来同时输出下标,和元素
        print(i, end="\t")
        print(prod[0], end="\t")
        print(prod[1])

将商品加入购物车

在打印商品列表时,每个商品的前面都有其对应的序号,通过输入序号,来选择其对应得商品,加入购物车。商品一种有6个,序号范围是[0, 6),因此如果输入其他的字符,就是结账,打印购物车。

def buy_sth():
    while True:
        num = int(input("请输入要加入购物车的商品序号;输入其他数字,打印购物车。"))  # input输入的格式都是str,因此要使用int()进行类型强制转换。
        if num in range(0, 6):
            shopping_cart.append(num)
        else:
            return

打印购物车、计算总金额

购物车中存放的是商品的序号,同时也是商品在商品列表中的下标,因此可以通过购物车中存放的序号直接获取商品的信息,并将其打印出来。

def print_cart():
    print("-" * 7, end="")
    print("购物车列表", end="")
    print("-" * 7)
    total = 0
    for num in shopping_cart:
        print(num, end="\t")
        print(products[num][0], end="\t")
        print(products[num][1])
        total += products[num][1]
    print("-" * 20)
    print("\t" * 4 + "共记:%d元" % total)

完整代码

products = [["苹果", 21], ["香蕉", 10], ["梨", 14], ["桃子", 66], ["草莓", 80], ["菠萝", 6]]
shopping_cart = []

def print_pro():
    print("-" * 7, end="")
    print("商品列表", end="")
    print("-" * 7)
    for i, prod in enumerate(products):   # 列表可以通过枚举类型,来同时输出下标,和元素
        print(i, end="\t")
        print(prod[0], end="\t")
        print(prod[1])


def buy_sth():
    while True:
        num = int(input("请输入要加入购物车的商品序号;输入其他数字,打印购物车。"))
        if num in range(0, 6):
            shopping_cart.append(num)
        else:
            return


def print_cart():
    print("-" * 7, end="")
    print("购物车列表", end="")
    print("-" * 7)
    total = 0
    for num in shopping_cart:
        print(num, end="\t")
        print(products[num][0], end="\t")
        print(products[num][1])
        total += products[num][1]
    print("-" * 20)
    print("\t" * 4 + "共记:%d元" % total)


if __name__ == "__main__":
    print_pro()
    buy_sth()
    print_cart()

运行结果如下:
在这里插入图片描述

另外说明

从上面程序运行的结果可以看出,这个代码有很大的改进空间:在商品列表中可以加上表头、在购物车列表中,相同种类的可以合并为数量等等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/192269.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

11、Servlet——综合案例(Servlet+JDBC):管理员登录

目录 1、在MySQL中新建一个servletdatabase数据库,创建表admin 2、在web中创建登录页面login.html 3、在web中创建CSS文件夹,在CSS文件夹中创建login.css 4、在web下新建注册页面register.html 5、在CSS文件夹中新建register.css 6、在CSS文件夹下新…

文件包含漏洞

数据来源 本文仅用于信息安全的学习,请遵守相关法律法规,严禁用于非法途径。若观众因此作出任何危害网络安全的行为,后果自负,与本人无关。 01 文件包含漏洞概述 简单例子 PHP中的文件包含函数 02 文件包含漏洞类型及利用 本地文…

基于MATLAB的车牌识别系统设计

基于MATLAB的车牌识别系统设计 摘要 随着公路逐渐普及,我国的公路交通事业发展迅速,所以人工管理方式已经不能满着实际的需要,微电子、通信和计算机技术在交通领域的应用极大地提高了交通管理效率。汽车牌照的自动识别技术已经得到了广泛应…

弱网测试利器-Charles工具实战

一:弱网测试要点 二:利用抓包工具charles进行弱网设置,适用PC端和移动端(IOS/Android) 1、以charles 4.5.6版本为例,打开Proxy->Throttle Settings 2、打开Throttle Settings,界…

实战详细讲解Qt插件plugin的编写与用法

目录 1.Qt的插件是什么?优点是什么? 2.实战项目需求 3. 程序设计分析 4.Qt插件的编写 Q_DECLARE_INTERFACE(类名,标识符) Q_INTERFACES 5.插件的调用 总结感言: 1.Qt的插件是什么?优点是…

let/const相关的内容(一)

1.let/const的基本使用 在ES5中我们声明变量都是使用的var关键字(variable的缩写),从ES6开始新增了两个关键字可以声明变量:let、const。 let和const在其他编程语言中都是有的,所以并不是新鲜的关键字,但是他们确实给JS带来了不一…

动态规划设计LeetCode 300. 最长递增子序列 354. 俄罗斯套娃信封问题

🌈🌈😄😄 欢迎来到茶色岛独家岛屿,本期将为大家揭晓LeetCode 300. 最长递增子序列 354. 俄罗斯套娃信封问题,做好准备了么,那么开始吧。 🌲🌲🐴&#x1f434…

【openGauss】把应用开发中的设置客户端字符编码往细了说

前言 早前写过两篇有关Oracle字符集的文章 【ORACLE】谈一谈Oracle数据库使用的字符集,不仅仅是乱码 【ORACLE】谈一谈NVARCHAR2、NCHAR、NCLOB等数据类型和国家字符集 基本说明了 ”数据字符编码“、”客户端字符编码“、”数据库字符编码“三者的关系,这些关系&a…

磨金石教育摄影技能干货分享|年味就是幸福圆满的味道

时光荏苒,时代变迁。以前是古街古巷,现在是高楼大厦。以前的老街,灯笼满街,烟火气十足。现在的城市商业街中霓虹灯可以展示出各种新年的影像。无论时代如何变迁,无论时光走了多远,我们对春节的期待从未改变…

吴恩达机器学习(二)——机器学习之监督模型之回归模型之线性回归模型

y-hat一般指的就是预测值 线性回归模型实例 构建模型 我们有一个房子的大小size,得到房屋价格(price),通过这两个常数就可计算一个输入和输出的函数关系。 f w,b(x(i)) wx(i) b i指的是第几个训练数据 评估模型——…

【教程】browsermob-proxy 基于Java的代理服务 配合selenium使用

【教程】browsermob-proxy 基于Java的代理服务 配合selenium使用 配置依赖 <!-- 代理 配合 selenium进行抓包修改等 --><dependency><groupId>net.lightbody.bmp</groupId><artifactId>browsermob-core</artifactId><version>2.1.5&…

H3C Switch S1848G端口限速

需求&#xff1a;在交换机层面对接入用户的网络流量限速1.交换机信息2.主机限速前2.1本机IP和MAC信息依次打开控制面板\所有控制面板项\网络连接2.2限速前测速使用浏览器打开https://10000.gd.cn/测速3.主机限速后3.1查看主机所在交换机接口点击“网络”-“MAC地址”&#xff0…

【微信小程序】给你的页面加上一个填写进度表

前言在搭建一些与申请相关的微信小程序的时候&#xff0c;用户会遇到需要填写很多表单的情况&#xff0c;面对未知的表单数量&#xff0c;用户往往就会放弃填写申请表格。在此基础上作为开发者的我们常常会收到这样的一个任务——给申请页面加上一个填写进度表。这样不仅可以优…

274. H 指数

274. H 指数一、题目描述二、题目分析三、解题思路3.1 更换H指数定义3.2 二分法枚举H指数一、题目描述 二、题目分析 这道题比较绕&#xff0c;理解题目意思&#xff0c;根据题目的说法&#xff0c;所谓的H指数就是&#xff1a;总共有 h 篇论文分别被引用了至少 h 次。且其余的…

二战阿里巴巴成功上岸,准备了小半年,要个28k应该也算不上很高吧~

先说下我基本情况&#xff0c;本科不是计算机专业&#xff0c;现在是学通信&#xff0c;然后做图像处理&#xff0c;可能面试官看我不是科班出身没有问太多计算机相关的问题&#xff0c;因为第一次找工作&#xff0c;阿里的游戏专场又是最早开始的&#xff0c;就投递了&#xf…

Spring Cloud Alibaba系列三:集成Gateway实现路由管理

文章目录Spring Cloud Alibaba系列三&#xff1a;集成Gateway实现路由管理前言1、改造父项目 pom 文件2、创建 gateway 子 module3、配置yml文件Spring Cloud Alibaba系列三&#xff1a;集成Gateway实现路由管理 spring cloud alibaba 版本对照 spring cloud alibaba 有严格的…

【MPP数据库】TiDB表分区探索与实践

方案背景——为什么要进行分区&#xff1f; 一是老板通Tidb集群每天涉及50张表、2亿多条数据回流&#xff0c;合理使用Hash可以把写入压力打散到不同的TiKV&#xff1b; 二是对于大集团数据做聚合&#xff0c;利用分区裁剪原理&#xff0c;查询时可以充当前置索引&#xff0c…

1月第4周榜单丨飞瓜数据B站UP主排行榜(哔哩哔哩平台)发布!

飞瓜轻数发布2023年1月23日-1月29日飞瓜数据UP主排行榜&#xff08;B站平台&#xff09;&#xff0c;通过充电数、涨粉数、成长指数三个维度来体现UP主账号成长的情况&#xff0c;为用户提供B站号综合价值的数据参考&#xff0c;根据UP主成长情况用户能够快速找到运营能力强的B…

卫星地图——MAP(c++)

卫星地图 题目描述 一张矩形的卫星地图&#xff0c;有M行N列。行列中的0表示空地&#xff0c;1表示有建筑。有3种类型的建筑: L型: 仅在一行上占据连续的若干个格子&#xff0c;长度至少为2&#xff0c;至多为N C型&#xff1a;仅在一列上占据连续的若干个格子&#xff0c;…

春节机票销售大增!航空领域哪些业务风险要注意?

目录 航空领域常见的业务风险 2022年航空业务风险趋势分析 航空领域业务风险欺诈分析 如何防范航空业务风险 针对恶意网络爬虫 针对仿冒登录与内控风险 安全技术 春节旅游与出行数据陆续出炉。中国民航局数据显示&#xff0c;2023年1月21日至27日&#xff08;农历除夕至…