初学程序结构写的一个简单网站,使用了大量的循环语句,代码重复较多,因此参考度不大。
下面是完整代码:

"""
用户登录的电商网站
"""
#引入模块
import os, sys, time
import random#定义一个变量,存储多个用户数据
users = [["admin", "123", "Tom"],["liuhaoran", "1997", "Jone"]
]#展示登录菜单
while True:os.system("cls")print("*" * 35)print("\t欢迎来到豪华电商网站")print("\t1.用户登录")print("\t2.注册新用户")print("\t3.修改用户信息")print("\t4.退出系统")print("*" * 35)#用户输入选项userChoice  = input("请输入您的选项:")#判断用户选项并跳转if userChoice == "1":#用户登录while True:#请输入账号和密码username = input("请输入您的账号:")password = input("请输入您的密码:")nicheng = input("请输入您的昵称: ")#判断账号和密码是否正确for user in users:if username == user[0] and password == user[1] and nicheng == user[2]:#登录成功,展示首页菜单print("登录成功,即将进入首页菜单")time.sleep(1)break#for循环遍历完之后还没有登录成功else:print("账号或密码有误,请重新操作")continue# 跳出while输入账号的循环break# 展示首页菜单while True:os.system("cls")print("%s小仙女,欢迎您" % (nicheng))print("~" * 44)print("\t\t系统网站首页")print("~*" * 22)print("\t\t1.进入购物超市")print("\t\t2.休闲小游戏")print("\t\t3.返回登录菜单")print("\t\t4.退出系统")print("~*" * 22)# 用户输入选项choice = input("请输入您的选项: ")if choice == "1":# 显示购物超市页面while True:os.system("cls")print("*" * 30)print("\t欢迎来到豪华购物超市")print("\t商品\t单价\t库存")print("\t苹果\t5元\t100斤")print("\t梨子\t4元\t50斤")print("\t辣条\t1元\t10包")print("\t牛奶\t3元\t20瓶")print("\t小心钱包哈哈哈")print("*" * 30)listA = [["苹果", "5", "\t100"],["梨子", "4", "\t50"],["辣条", "1", "\t10"],["牛奶", "3", "\t20"]]total = 0for food in listA:buyChoice = input("请输入您要购买的商品: ")if buyChoice == "q":print("即将退出")time.sleep(3)breakelif buyChoice == food[0]:# 单价price = int(food[1])# 总的库存sumCount = int(food[2])while True:count = int(input("请输入您要购买的数量:"))# 库存不足if count > sumCount:input("不好意思,库存不足,我们会尽快补货的")continueelif count <= 0:print("客官,不能再少了")continueelse:# 总共花的钱sumPrice = count * priceprint("您购买的商品是%s,数量为%s,总额是%s" % (food[0], count, sumPrice))break# 结算总金额total += sumPrice# 询问用户是否继续购买choice = input("是否继续购买(y/n)")if choice == "y":continueelse:print("您需要付钱:", total)# 买完付钱while True:money = float(input("请付钱:"))# 用户支付的金额不足if money < total:input("金额不足,请重新支付...")continue# 找零balance = money - totalprint("找您零钱:", balance, "元,欢迎下次再来")time.sleep(2)breakbreakbreakelse:input("商品未上架,请购买其他东西吧...")time.sleep(2)continuebreakelif choice == "2":#展示游戏界面while True:os.system("cls")print("*" * 30)print("---欢迎光临大富豪游戏---")print("\t1.石头剪刀布")print("\t2.老虎棒子鸡")print("\t3.猜数字")print("*" * 30)# 初始积分score = 10#用户输入选择gameChoice = input("请输入您的选择: ")print("现在的积分为:", score)if gameChoice == "1":print("*" * 30)print("欢迎来到石头剪刀布游戏!")print("您准备好了吗?")print("*" * 30)while True:# 石头剪刀布游戏# 电脑每次出拳随机computerNum = random.randint(0, 2)if computerNum == 0:computerEnd = "石头"elif computerNum == 1:computerEnd = "剪刀"else:computerEnd = "布"# 玩家出拳if score >= 0:userEnd = input("请出拳(石头、剪刀、布):")else:print("积分不足,请充值")print("即将退出")time.sleep(2)break#玩家不想玩了if userEnd == "q":print("客官慢走呀")time.sleep(2)break#为了使体验更友好,显示玩家和电脑出拳情况print("您出拳为:%s,\n电脑出拳为:%s"%(userEnd, computerEnd))if userEnd == "石头":if computerEnd == "石头":print("平局,积分不变,现有积分:%s" % (score))elif computerEnd == "剪刀":score += 10print("恭喜您,获胜,加10分,现有积分:%s"%(score))else:score -= 10print("很遗憾,您输了,扣10分,现有积分:%s"%(score))elif userEnd == "剪刀":if computerEnd == "石头":score -= 10print("很遗憾,您输了,扣10分,现有积分:%s"%(score))elif computerEnd == "剪刀":print("平局,积分不变,现有积分:%s" % (score))else:score += 10print("恭喜您,获胜,加10分,现有积分:%s" % (score))elif userEnd == "布":if computerEnd == "石头":score += 10print("恭喜您,获胜,加10分现有积分:%s" % (score))elif computerEnd == "剪刀":score -= 10print("很遗憾,您输了,扣10分,现有积分:%s" % (score))else:print("平局,积分不变,现有积分:%s" % (score))else:print("输入错误,请重新输入")continueelif gameChoice == "2":#展示游戏画面print("*" * 35)print("欢迎来到老虎棒子鸡游戏...")print("\t游戏规则如下")print("棒打老虎,老虎吃鸡,鸡吃虫,虫吃棒")print("*" * 35)while True:# 老虎棒子鸡游戏#电脑随机生成一个动物名字animalNum = random.randint(0,3)if animalNum == 0:animalName = "老虎"elif animalNum == 1:animalName = "棒子"elif animalNum == 2:animalName = "鸡"else:animalName = "虫"#提示用户输入if score >= 0:animal = input("请输入您心中的动物(老虎、棒子、鸡、虫): ")#若积分不足不能继续游戏else:print("积分不足,请充值")print("即将返回首页")time.sleep(2)break#用户输入q退出游戏if animal == "q":print("客官慢走...")time.sleep(2)break#显示电脑和用户输入input("电脑想到的动物是:%s,\n玩家想到的动物是:%s"%(animalName, animal))if animal == "老虎":if animalName == "老虎":input("平局,积分不变,现有积分:%s"%(score))elif animalName == "棒子":score -= 10input("很遗憾,您输了,扣10分,现有积分:%s"%(score))elif animalName == "鸡":score += 10input("恭喜您,获胜,加10分,现有积分:%s"%(score))else:input("不分输赢,积分不变,现有积分为:%s"%(score))elif animal == "棒子":if animalName == "老虎":score += 10input("恭喜您,获胜,加10分,现有积分:%s"%(score))elif animalName == "棒子":input("平局,积分不变,现有积分:%s" % (score))elif animalName == "鸡":input("不分输赢,积分不变,现有积分为:%s" % (score))else:score -= 10input("很遗憾,您输了,扣10分,现有积分:%s" % (score))elif animal == "鸡":if animalName == "老虎":score -= 10input("很遗憾,您输了,扣10分,现有积分:%s" % (score))elif animalName == "棒子":input("不分输赢,积分不变,现有积分为:%s" % (score))elif animalName == "鸡":input("平局,积分不变,现有积分:%s" % (score))else:score += 10input("恭喜您,获胜,加10分,现有积分:%s" % (score))elif animal == "虫":if animalName == "老虎":input("不分输赢,积分不变,现有积分为:%s" % (score))elif animalName == "棒子":score += 10input("恭喜您,获胜,加10分,现有积分:%s" % (score))elif animalName == "鸡":score -= 10input("很遗憾,您输了,扣10分,现有积分:%s" % (score))else:print("平局,积分不变,现有积分:%s" % (score))else:input("输入有误,请重新输入")continueelif gameChoice == "3":#猜数字游戏while True:#定义一个变量,记录每局游戏用户操作的次数times = 0#展示游戏画面print("*" * 30)print("猜数字游戏")print("Ready? Go")print("*" * 30)# 电脑随机产生数字comNum = random.randint(0, 100)print("系统数字已经生成...")while True:#提示用户猜数字if score >= 0:number =int(input("请输入您的数字: "))#每猜一次积分减1score -= 1#每输入1次次数加1times += 1# 根据用户输入的数字判断是偏大/偏小if number > comNum:input("猜错了,偏大")elif number < comNum:input("猜错了,偏小")elif number == comNum:input("恭喜您,答对了!")input("您只猜了:%s次就猜对了呢!" % (times))# 根据次数增加积分if times == 1:score += 10elif times == 2:score += 8elif times == 3:score += 5elif times == 4:score += 2elif times == 5:score += 1else:score += 0print("您的积分为:%s" % (score))breakelse:input("输入错误,请重新输入...")continueelse:input("积分不足,请及时充值,即将返回游戏主页面")time.sleep(3)breakresponse = input("游戏结束,是否继续?")if response == "y":continueelse:print("游戏退出")breakelif gameChoice == "q":print("退出游戏,即将回到电商网站首页")time.sleep(3)breakelif choice == "3":print("账号即将退出,返回登录菜单...")time.sleep(1)breakelif choice == "4":print("退出系统")time.sleep(3)sys.exit(1)else:print("没有这个选项,请重新操作")time.sleep(1)continueelif userChoice == "2":while True:os.system("cls")# 展示注册界面print("\t\t用户注册")print("*" * 40)print("\t您好!欢迎注册新用户^-^")print("\t请根据提示信息")print("\t填写您的个人资料")print("*" * 40)time.sleep(1)#提示用户录入信息username = input("请输入您的账号: ")#验证用户账号是否可用is_ok = True #可用for user in users:if username == user[0]:input("您的账号已经存在,请使用其他账号注册")is_ok = False #表示账号不可用#如果账号已经被使用if not is_ok:continue #回到while循环,重新输入账号#提示用户输入昵称nicheng = input("请给自己起一个不一样的昵称吧: ")#提示用户输入密码while True:password = input("请输入您的密码: ")#提示用户确认密码confirm = input("请再次确认密码: ")#判断两次输入的密码是否一致if password != confirm:print("两次密码输入不一致,请重新输入..")time.sleep(2)continuebreak#注册用户:将用户输入的账号、密码保存成一个列表user = [username, password, nicheng]#将新用户的列表添加到系统用户变量中users.append(user)print("注册成功,请使用新账号登录")time.sleep(2)break #跳出注册页面elif userChoice == "3":#修改用户登录密码while True:os.system("cls")print("*" * 30)print("\t您正在修改个人信息")print("\t请确认是本人操作")print("*" * 30)username = input("请输入您的用户名: ")if username == "q":print("放弃修改,即将退出修改界面")time.sleep(3)breakfor user in users:while username == user[0]:oldPassward = input("请输入您的旧密码: ")if oldPassward == "q":print("放弃修改,即将退出修改界面")time.sleep(3)breakelif oldPassward != user[1]:print("密码错误,请重新输入")continuewhile oldPassward == user[1]:newPassward = input("请输入新密码: ")if newPassward == "q":print("放弃修改,即将退出修改界面")time.sleep(3)breakelif newPassward == oldPassward:print("两次密码相同,请重新输入")continueelse:#将修改过的密码保存user[1] = newPasswardusers.append(user)input("修改成功,请使用新密码登录")time.sleep(2)breakbreakbreakbreakelif userChoice == "4":print("即将退出系统")time.sleep(3)sys.exit(1)else:print("没有这个选项,请重新操作")time.sleep(1)#返回菜单,重新显示continue

项目案例——电商网站相关推荐

  1. react基础06--react综合案例-电商网站导航

    react基础06--react综合案例-电商网站导航 1 介绍 2 案例设计模块 2.1 分类导航数据模型设计 2.2 一级分类导航切换高亮效果 2.3 显示二级分类导航 2.4 路由跳转到二级导航 ...

  2. Python Web前端实战案例——电商网站商品菜单导航栏

    jQuery是一个快速.小巧.轻量级的.写的少.做的多.功能丰富的 JavaScript 库,是目前最流行的 JS 框架.利用它可以帮我们快速实现一些炫酷的效果. 目录 1 原理先知 2 思路概要 3 ...

  3. 实验八 项目案例-电商数据分析

    电商大数据离线计算 第1关:统计用户流失情况 任务描述 相关知识 数据文件格式说明 用户流失情况 编程要求 测试说明 代码实现 第2关:统计所有商品点击量排行 任务描述 相关知识 数据文件格式说明 商 ...

  4. 大型网站电商网站架构案例和技术架构的示例

    大型网站架构是一个系列文档,欢迎大家关注.本次分享主题:电商网站架构案例.从电商网站的需求,到单机架构,逐步演变为常用的,可供参考的分布式架构的原型.除具备功能需求外,还具备一定的高性能,高可用,可伸 ...

  5. 大型网站架构系列:电商网站架构案例(3)

    本文章是电商网站架构案例的第三篇,主要介绍数据库集群,读写分离,分库分表,服务化,消息队列的使用,以及本电商案例的架构总结. 6.5数据库集群(读写分离,分库分表) 大型网站需要存储海量的数据,为达到 ...

  6. 关于大型网站架构系列:电商网站架构案例(目前最有深意喜欢的文章)

    算法与数据结构C++精解 ThinkPHP5.0+小程序商城构建全栈应用 AngularJS仿拉勾网WebApp开发移动端单页应用 Thinkphp 5.0实战 仿百度糯米开发多商家电商平台 原文出处 ...

  7. 大型电商网站架构案例和技术架构【推荐】

    大型网站架构是一个系列文档,欢迎大家关注.本次分享主题:电商网站架构案例.从电商网站的需求,到单机架构,逐步演变为常用的,可供参考的分布式架构的原型.除具备功能需求外,还具备一定的高性能,高可用,可伸 ...

  8. 大型网站架构系列:电商网站架构案例(2)

    电网网站架构案例系列的第二篇文章.主要讲解网站架构分析,网站架构优化,业务拆分,应用集群架构,多级缓存,分布式Session. 五.网站架构分析 根据以上预估,有几个问题: 需要部署大量的服务器,高峰 ...

  9. Spark 案例(依据电商网站的真实需求)

    目录 数据说明 需求1:Top10 热门品类 需求说明 实现方案一 需求分析 需求实现 实现方案二 需求分析 需求实现 实现方案三 需求分析 需求实现 需求 2:Top10 热门品类中每个品类的 To ...

最新文章

  1. 【跃迁之路】【738天】程序员高效学习方法论探索系列(实验阶段495-2019.2.28)...
  2. List for game to play latter
  3. [FLASH_AS]Flash as3 addEventListener事件监听传递参数
  4. html+css复习之第2篇 | javascript
  5. Linux内核中工作队列的使用work_struct,delayed_work
  6. UWP Composition API - GroupListView(一)
  7. CEF编译 执行gn args out\Release_GN_x86异常
  8. 【C语言】数据结构C语言版 实验6 树
  9. java 表达式写法_java内置核心4大函数式接口写法和lambda表达式
  10. html5图像、图片处理【转】
  11. http是不是中间件_等保2.0涉及的Apache Tomcat中间件(上)
  12. TransparentImage、TransparentBlt - [Daliy APIs]
  13. 度分秒转度数和度数转度分秒
  14. 计算机属于附属常用工具吗,计算机常用工具软件试题.doc
  15. Qt 加载翻译文件基本方法
  16. 树莓派驱动数码管c 语言,用树莓派驱动八段数码管实现倒计时
  17. (转载)SPSS之聚类分析(图文+数据集)
  18. android 扫码枪 字符数少掉,BarTender条码字符数莫名变少是怎么回事?
  19. 标准C语言各种时间函数用法
  20. 深入浅出WMS之出库流程解析

热门文章

  1. 一文梳理CSS必会知识点
  2. [Zookeeper-3.6.2源码解析系列]-14-Zookeeper使用到的Reactor网络模型原理分析
  3. Ubuntu 安装Trac
  4. 2017年小老虎软考辅导视频访问量备忘录
  5. 第2部分 字符串算法(提高篇)--第2章 KMP算法1469:似乎在梦中见过的样子
  6. Sun Jan 05 2020 00:00:00 GMT 0800 (中国标准时间) 时间转换为 2020-01-05 08:00:00
  7. 数字图像matlab边缘检测(一)
  8. SpringBoot集成支付宝沙箱手机网站支付详细流程和踩坑分享
  9. 电子商务系统数据库设计(一)
  10. 基于JAVA机票预定系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署