实战八:模拟京东购物流程

问题描述:

   从键盘录入5个商品信息(1001手机)添加到商品列表中,展示商品信息,提示用户选择商品,用户选中的商品添加到购物车中(购物车中的商品要逆序),用户选中的商品不存在需要有相应提示,当用户输入“q”时循环结束,显示购物商品。

1.从键盘录入5个商品信息,并添加到商品列表中。
2.展示商品信息。
3.提示用户选择商品,并将选中的商品添加到购物车中(购物车中的商品要逆序)。
4.如果用户选择的商品不存在,则给出相应提示。
5.当用户输入“q”时,结束选择过程,并显示购物车中的商品。

编程:

方法一:列表的添加和反向操作

# 创建一个空列表,存储录入的五个商品
lis = []
for i in range(5):goods = input("请输入商品的编号和商品的名称进行商品入库,每次只能输入一件商品:")lis.append(goods)
# 输出所有商品信息
for j in lis:print(j)# 创建一个空列表,存储购物车的商品
car = []
while True:flag = False #代表没有商品的情况num = input('请输入要购买的商品编号:')# 遍历商品列表,查询一下要购买的商品是否存在for k in lis:if num == k[0:4]:flag = True # 代表商品已找到car.append(k) # 添加到购物车中print('商品已成功添加到购物车')break # 退出的是for循环if not flag and num!='q':print('商品不存在')if num == 'q':break
print('_'*50)
print('您购物车里已选择的商品为:')
car.reverse()
for n in car:print(n)

在这里插入图片描述

方法二:类方法

# 定义商品类
class Product:def __init__(self, id, name):self.id = idself.name = namedef __str__(self):return f"{self.id} {self.name}"# 初始化商品列表
products = []# 从键盘录入5个商品信息
for i in range(5):id = input(f"请输入第{i+1}个商品的ID(例如1001): ")name = input(f"请输入第{i+1}个商品的名称(例如手机): ")product = Product(id, name)products.append(product)# 展示商品信息
print("\n商品列表:")
for i, product in enumerate(products, start=1):print(f"{i}. {product}")# 初始化购物车
cart = []# 用户选择商品
while True:choice = input("\n请输入要购买的商品编号(输入'q'结束选择): ").strip()if choice.lower() == 'q':break# 检查用户输入的商品编号是否存在found = Falsefor product in products:if str(product.id) == choice:cart.append(product)found = Truebreakif not found:print("商品编号不存在,请重新输入!")# 购物车中的商品逆序
cart.reverse()# 显示购物车中的商品
print("\n购物车中的商品(逆序):")
for product in cart:print(product)

在这里插入图片描述

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

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

相关文章

Selenium安装WebDriver最新Chrome驱动(含116/117/118/119)

目录 1、确认浏览器的版本 2、找到对应的chromedriver版本 3、解压chromedriver文件,放置chrome的安装目录下 4、设置系统属性 5、确认chromedriver是否安装成功及解决方式 1、确认浏览器的版本 在浏览器的地址栏,输入chrome://version/&#x…

攻防世界cat-题解

1.打开题目很想是一个命令执行,但是使用命令之心的语句,无法执行命令,看了wp,是在命令执行的时候;被编码了,我们把url%80使它溢出,把显示出来的代码下载到本地分析 分析代码我们可以知道这个是一…

SSM框架

目录 一. Maven入门和进阶 1.Maven简介和快速入门 (1) Maven介绍 (2) Maven的主要作用理解 ①场景概念 ②依赖管理 ③构建管理 (3)Maven安装和配置 ①软件安装 ②环境变量 ③命令测试 ④配置文件: ⑤idea配置本地maven 2.基于IDEA的Maven工程创建 (1…

AI 名人堂:李飞飞

Fei-Fei Li(李飞飞),斯坦福大学计算机科学系教授,斯坦福人工智能实验室前主任,以其在人工智能领域的开创性工作而闻名。 人工智能教育的倡导者 计算机视觉领域的领军人物 ImageNet的创造者 2AGI.NET AI 教程 2025最…

基于JavaScript实现的操作系统页面置换算法程序

基于JavaScript的操作系统页面置换算法程序 1. 实验目的 页面置换算法是虚拟存储管理实现的关键,通过本次实验理解内存页面调度的机制,在模拟实现FIFO、LRU等页面置换算法的基础上,比较它们的效率及优缺点,从而了解虚拟存储实现…

JAVA-初始JAVA模块化开发

菜鸟为了巩固所写 目录 菜鸟为了巩固所写 一、概述 二、创建步骤 1、打开Intellij IDEA,创建一个名为MyJavaModuleApp的Java项目。 2、向示例项目中添加”模块描述符“文件 3、创建多模块的IntelliJ 项目 4、IntelliJ项目添加“新模块”对话框 解释1:模块声…

Java 中tableaw 实战教程

java中tableaw库通过简单的API实现过滤、连接、绘制和操作表格数据。支持CSV,数据库,Excel等数据源。 安装依赖 tableaw是用于分析表格数据的开源Java库,构建在Java 8流之上。它可以从GitHub下载,也可以作为Maven或Gradle项目的…

力扣206. 反转链表题解

文章目录 题目描述:试析:1.迭代法2.递归法3.双指针法4.数组法 力扣206. 反转链表 题目描述: 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] …

Jdk21引入jsoup运行报错:java.lang.NoClassDefFoundError

文章目录 背景抽象类中代码问题分析尝试最终解决 背景 在富文本编译内容中,有些文件是存储到阿里云 oss 中的,所以链接做 STS 临时访问有时效性,每次返回的时候,需要通过STS来签名替换掉其中的链接访问,所以用到 jsoup…

Kafka 物理存储机制

优质博文:IT-BLOG-CN 一个商业化消息队列的性能好坏,其文件存储机制设计是衡量一个消息队列服务技术水平和最关键指标之一。下面将从Kafka文件存储机制和物理结构角度,分析Kafka是如何实现高效文件存储,及实际应用效果。Kafka的基…

【Linux】内核打印函数`printk`详解

在Linux内核开发过程中,printk是一个极其重要的函数,用于将信息输出到内核日志中。通过printk,开发者可以在内核中打印调试信息、错误信息以及其他类型的日志,这对于诊断问题、追踪执行流程以及监控系统状态都非常有帮助。本文将详…

校园失物招领借助 SpringBoot:塑造校园互助寻物新风尚

3系统分析 3.1可行性分析 开发者在进行开发系统之前,都需要进行可行性分析,保证该系统能够被成功开发出来。 3.1.1技术可行性 开发该校园失物招领系统所采用的技术是vue和MYSQL数据库。计算机专业的学生在学校期间已经比较系统的学习了很多编程方面的知识…

SpringCloud微服务学习笔记(二)_Docker

文章目录 docker拆封原则docker在linux上的安装部署mysql部署mysql命令解读 常见命令数据卷挂载以宿主目录自定义挂载Dockerfile语法自定义镜像容器网络互联部署java应用,后端部署前端DockerCompose(快速部署) docker 简化环境配置流程 单体架构 架构简单部署成本低团队协作成…

02.ABAP工作台介绍

总学习目录请点击下面连接 SAP ABAP开发从0到入职,冷冬备战-CSDN博客 目录 1.知识库和对象浏览器 目的: 知识库有那些对象 知识库对象结构 如何去知识库查找对象 第一个是知识库信息系统 2.知识库和对象浏览器操作 3.开发abap程序 创建新的AB…

【Axure视频教程】中继器表格——筛选后的条件判断

今天教大家在Axure制作中继器表格筛选以及筛选后条件交互的原型模板,我们可以在输入框里输入员工姓名,点击查询按钮后可以筛选出对应的数据,筛选后会进行条件判断,如果筛选不到任何数据,就会显示提示弹窗。这个原型模板…

华为ensp中nat server 公网访问内网服务器

作者主页:点击! ENSP专栏:点击! 创作时间:2024年4月15日17点30分 💯趣站推荐💯 前些天发现了一个巨牛的🤖人工智能学习网站,通俗易懂,风趣幽默,…

Redis 可以代替 MySQL 作为数据库吗?

当使用Redis作为数据库时,以下是一些基本的代码示例 展示了如何使用Redis进行数据存储、读取和更新: 1.连接到Redis服务器: import redis# 创建Redis连接 r redis.Redis(hostlocalhost, port6379, db0)2.存储和获取数据: # 存…

C语言(一维数组练习)

键盘录入一组数列&#xff0c;利用冒泡排序将数据由大到小排序 #include <stdio.h>int main(int argc,char *argv[]) {int i,j,tmep;int arr[10];printf("请输入10个测试整数&#xff1a;\n");int lensizeof(arr)/sizeof(arr[0]);for(i0;i<len;i){scanf(&q…

【C++】动态内存管理

目录 一、C/C的内存分布 &#x1f354;内存的划分 &#x1f35f;C语言动态内存管理方式 &#x1f32e;C动态内存管理方式 二、new 和 delete &#x1f354;new 和 delete 操作自定义类型 &#x1f35f;operator new 与 operator delete 函数 &#x1f32e;面试题&#x…

开发者如何使用GCC提升开发效率Opencv人脸检测

阅读此篇前请务必阅读以下两篇&#xff0c;不然你可能都不会安装环境 文章目录 简单人脸识别第三方模型集成人脸检测 简单人脸识别 使用Opencv自带的haarcascade_frontalface_alt2模型&#xff0c;始终差一个人没标出来&#xff0c;很尴尬 报错找不到模型 EveryThing搜索一遍…