电子商城功能

  • 用户登录注册
  • 页面之间的跳转
  • 用户购买商品的输入判断
  • 数据的修改已更新
  • 休闲小游戏的整合

用户登录注册

列表的初始化与赋值

users=[['admin','admin'],['tom','123456']]
g1=[1000,'可口可乐(罐装)',2.5,100]
g2=[1001,'可口可乐(瓶装)',3.0,100]
g3=[1002,'可口可乐(小瓶装)',2.5,100]
g4=[1003,'可口可乐(大瓶装)',6.0,100]
goods=[g1,g2,g3,g4]
score=10

用户登录

根据python逐行解释的特性设计逻辑,从而跳出多个循环
遍历用户列表匹配用户信息,进行身份认证

        os.system('cls')while 1.1:name = input("请输入您的用户名:")password = input('请输入您的密码:')for username in users:if username[0] == name and username[1] == password:input ("用户登录成功,按任意键进入首页")time.sleep(1)breakelse:input("用户名或密码错误!按任意键继续!")os.system('cls')continuebreak

用户注册

在循环中可以通过变量的控制,从而实现多个循环的跳出

#用户注册break_flag = Falsewhile break_flag == False:name = input('请输入您的用户名:')#判断用户名是否存在for username in users:if username[0] == name:input("你的用户名已存在,请重新输入")break#在for循环中添加else,使得在遍历完成后等够跳出两层循环else:break_flag = Truepassword = input('请输入您的密码:')#把注册的用户加入到用户列表中register = [name, password]users.append(register)input("注册成功,按任意键返回!")

超市页面

首先进行输入判断

str.isdigit() #判断输入是否为数字

取出列表中的索引与值,以便下面操作二维列表的时候使用,同时明确选择的商品完整信息

i, rows in enumerate(goods)#输出索引和值

之后进行库存判断,明确商品可以购买

#判断输入的是否为整数if Input.isdigit():#遍历商品列表,得到商品信息for i, rows in enumerate(goods):#输出索引和值back = False#判断输入商品编号是否存在if int(Input) == rows[0]:Input = rows[0]# 判断商品是否还有库存if rows[3] > 0:while 1:buy = input("请输入你要购买的数目:")if buy.isdecimal():  # 判断输入是否为整数,判断完成后在进行int操作,防止出错 PS:可以使用try exceptbuy = int(buy)#判断输入合法if buy > rows[3]:input("购买数目过大,按任意键返回")continueelse:breakelse:input('输入有误,按任意键返回!')continue

付账信息明确
运用try...except... 进行异常处理是实现金额输入标准化

#输入金额判断
money = input('请输入金额:')
try:  # 判断输入金额是否为数字,可能存在零钱,使用try 收集异常,做到判断money = float(money)  # 转换为float预防用户输入为浮点数if money > 0:breakelse:input('输入有误,按任意键返回')continue
except ValueError:#异常信息 传入无效的参数print('输入有误,按任意键返回!')continue

商品购买流程

#商品购买
#判断金额是否满足条件
if money > rows[2] * buy:print('找您%.2f元钱' % (money - rows[2] * buy))print('感谢您的购买,欢迎下次再来!')# 修改库存goods[i][3] = goods[i][3] - buyinput('按任意键返回')back = Truebreak
elif money < rows[2] * buy:while 5:#金额不足再次输入money1 = input("您支付的金额不足,请再次付账:")try:money1 = float(money1)money = money + money1breakexcept ValueError:input('您的输入有误,按任意键重新输入!')continue
else:print('感谢您的购买,欢迎下次再来!')#商品库存修改goods[i][3] = goods[i][3] - buyinput('按任意键返回')back = Truebreaktime.sleep(2)

小游戏整合

老虎棒子鸡

# 老虎棒子鸡游戏界面
os.system('cls')
print("\t\t欢迎进入PY1807电子商城休闲区")
print("#" * 70)
print("\t欢迎进入老虎棒子鸡小游戏规则页面")
print('\t你有10秒的时间观看规则,十秒后自动进入游戏')
print("\t游戏的规则是老虎吃鸡,棒子打老虎,虫子克棒子,鸡吃虫子")
print("\t当然老虎与虫子->平局,棒子与鸡->平局")
print("\t系统会自动出招")
print("\t玩家根据提示,输入自己的招式[0 老虎,1 棒子,2 鸡,3 虫子]")
print("\t系统会根据运算得出结果,根据结果给予奖励")
print("#" * 70)
time.sleep(5)
os.system('cls')# 积分判断
if score > 0:print('加载游戏中,请稍后...')time.sleep(1)while 1:print("\n系统正在绞尽脑汁的出招中...")time.sleep(1)print("\n准备接受正义的制裁吧!到你了,凡人")time.sleep(1)# 系统获得随机数game1_computer = random.randint(0, 3)# 玩家出招game1_player = input("\n请谨慎选择您的招数(0 老虎,1 棒子,2 鸡,3 虫子):")game1_player = int(game1_player)# 判断输赢print("\n电脑正在卖力的处理中,请稍等...\n")time.sleep(2)if (game1_player == 0 and game1_computer == 2) \or (game1_player == 1 and game1_computer == 0) \or (game1_player == 2 and game1_computer == 3) \or (game1_player == 3 and game1_computer == 1):print("\nCongratulations, 玩家获胜!获得2积分\n")score += 2time.sleep(1)# 确认用户是否退出num = input("\n是否退出游戏(Y):")if num == 'y' or num == 'Y':os.system('cls')breakelif (game1_player == 0 and game1_computer == 3) \or (game1_player == 1 and game1_computer == 2) \or (game1_player == 2 and game1_computer == 1) \or (game1_player == 3 and game1_computer == 0) \or (game1_player == game1_computer):print("\n哇哦,平局!看来还需要一局了")time.sleep(2)os.system("cls")else:print("\nSORRY,你输了!扣除1点积分\n")score = score - 1time.sleep(1)# 确认用户是否退出num = input("\n是否退出游戏(Y):")if num == 'y' or num == 'Y':os.system('cls')break
else:  # 积分不足print("积分不足,退出游戏")time.sleep(2)break

猜数字游戏

# 猜数字游戏
os.system('cls')
print("\t\t欢迎%s进入PY1807电子商城休闲区" % (name))
print("#" * 70)
print("\t欢迎进入猜数字小游戏规则页面")
print('\t你有10秒的时间观看规则,十秒后自动进入游戏')
print("\t游戏的规则是系统会从0-100之间随机选择一个数")
print("\t玩家猜测系统出的数")
print("\t若玩家猜测的数比系统的大,系统会提示偏大")
print("\t若玩家猜测的数比系统的小,系统会提示偏小")
print("\t玩家猜错一次扣一分,才对获得6积分的奖励")
print("#" * 70)
time.sleep(5)
os.system('cls')
print('系统正在选择时...')
time.sleep(2)
os.system('cls')
print('系统以选择完毕!!!')
game2_computer = random.randint(0, 100)
time.sleep(1)
while 1:# 积分判断if score > 0:game2_player = int(input("请输入您猜测的值(扣除1积分):"))time.sleep(1)# 判断结果if game2_player < game2_computer:print('您猜测的数字偏小,请重新输入!\n')time.sleep(1)score = score - 1print("当前积分为%d" % (score))time.sleep(1)continueelif game2_player > game2_computer:print("您猜测的数字偏大,请重新输入!\n")time.sleep(1)score = score - 1print("当前积分为%d" % (score))time.sleep(1)continueelse:print('恭喜您成功了,获得6积分')time.sleep(1)score = score + 6print("当前积分为%d" % (score))time.sleep(1)print('游戏结束,返回游戏页面')time.sleep(1)print('系统正在重新加载中...')time.sleep(1)breakelse:print('积分不足,退出游戏!')break

python 列表 循环 实现简易的电子商城相关推荐

  1. python列表循环赋值_python:循环列表列表并在循环内赋值

    这是一个有点不直观的变量行为.这是因为在Python中,变量总是引用值.在 盒子和标签 在某些语言中,我们倾向于将变量视为放置值的"框":然而,在Python中,变量是引用,其行为 ...

  2. python 列表循环 [i for i in array[0:] if i>2]在快速排序中的使用

    1.[1,2,36]这个在python叫做列表并且列表支持print和+运算即: array=[1,5,7]+[6,8,2] priint(array) 结果为[1, 5, 7, 6, 8, 2] 2 ...

  3. Python列表循环左移

    题目:编写程序生成一个包含15个介于1到100 之间随机整数的列表,将其循环左移5个元素. 方法1:使用切片,简单易理解,速度最快,可同时实现循环左移(k>0)和右移(k<0). def ...

  4. python 列表循环 [item for item in array[0:] if item>4]

    此为一个高效的循环判断并形成一个新的列表即:从列表array的第0个元素开始判断是否大于4,如果大于4则放到一个新的列表中.

  5. 微课|中学生可以这样学Python(例6.2):列表循环左移位

    适用教材: 董付国,应根球.<中学生可以这样学Python>.清华大学出版社,2017. 第6章  函数 6.6  精彩例题分析与解答 例6.2  列表循环左移位 京东购买链接:https ...

  6. Python 列表,for循环,元组的使用(修改、添加、删除、排序、切片)

    Python 列表(List) Python的基本数据类型有整数,浮点数,布尔,字符串,它们是最基本的数据.在实际编程中,我们要经常组织由很多基本数据组成的集合,这些集合的不同组织方式就是:数据结构, ...

  7. python for 循环中使用 remove 删除列表中的元素

    python for 循环中使用 remove 删除列表中的元素 错误的代码 # !/usr/bin/python # encoding: utf-8 # -*- coding: utf8 -*- o ...

  8. Python列表之for循环应用

    Python列表之for循环应用 一.程序要求及目的 二.代码内容 三.代码运行 一.程序要求及目的 将列表中姓张的人名元素改为姓李的,使用for循环 二.代码内容 # 列表在for循环中使用 lst ...

  9. Python坑:bool是int的子类、列表循环中的变量泄露、lambda在闭包中会保存局部变量、重用全局变量

    bool是int的子类 a = True print isinstance(a, int) print True == 1 print False == 0 运行结果: True True True ...

最新文章

  1. [微信官方文档] 小程序-错误码信息与解决方案表
  2. Python 200个标准库汇总
  3. 关于/etc/fstab
  4. Linux下修改Mysql数据库存放路径
  5. Python+pickle读写二进制文件小案例
  6. rabbitmq如何清空queue队列数据
  7. java程序员目标_Java程序员的目标,你都达到了多少条?
  8. Open3D:DBSCAN(C++)
  9. C++函数模板特化,类模板特化
  10. MATLAB求二阶隐函数导数,matlab隐函数求导
  11. Python实现高斯滤波
  12. 2020低压电工模拟考试及低压电工复审模拟考试
  13. 前端|Ant Design介绍
  14. 各大学习平台资源整合【网站篇一】
  15. 武林外传私服服务器制作,自己修改的YY朱武林外传服务端+架设工具+完整补丁...
  16. neosmart linux 光标,重装windows系统后原有的linux系统无法进入的解决办法。
  17. Matlab:将Prt的txt文件转换成tif
  18. Vue开发实例(13)之axios和mockjs的安装与使用
  19. 【强化学习论文合集】十三.2018机器人与自动化国际会议论文(ICRA2018)
  20. 前端开发薪资之各地区对比(图文分析)(share)

热门文章

  1. linux trac git,Trac+git 来管理wiki和source code
  2. 据国外媒体Theverge称微软目前正计划整合Windows Phone应用商店
  3. D2. Coffee and Coursework (Hard Version)(思维+贪心)
  4. 【正点原子MP157连载】 第六章 TF-A 使用-摘自【正点原子】【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7
  5. HCIP笔记(13)
  6. leveldb Arena 分析
  7. 前端——css盒模型
  8. 如何让你的 Python 代码在腾讯云 Linux 中一直运行着
  9. 康熙王朝---转自别人的旁白分析
  10. excel的vlookup常用查找功能