zoukankan      html  css  js  c++  java
  • 1.3

     1 # -*- coding: utf-8 -*-
     2 """
     3 基础需求:
     4 1.启动程序后,输入用户名密码后 让用户输入工资 然后打印商品列表
     5 2.允许用户根据商品编号购买商品
     6 3.用户选择商品后 检测余额是否够 够就直接扣款 不够就提醒
     7 4.可随时退出 退出时 打印已够买得商品和余额
     8 5.在用户的使用过程中 关键书输出 如余额 商品已加入购物车等消息 需高亮显示
     9 """
    10 goods = [
    11     {"name": "电脑", "price": 1999},
    12     {"name": "鼠标", "price": 10},
    13     {"name": "游艇", "price": 20},
    14     {"name": "美女", "price": 998}
    15 ]
    16 _username = "alice"
    17 _password = "123"
    18 buy_goods = []
    19 
    20 while True:
    21     username = input("请输入用户名(输入q表示退出):")
    22     if username == "q":
    23         break
    24     password = input("请输入密码(输入q表示退出):")
    25     if password == "q":
    26         break
    27     if not username and not password: continue
    28     if username == _username and password == _password:
    29         while True:
    30             prize = input("请输入工资(输入q表示退出):")
    31             temp = prize.split('.')
    32             if not prize: continue
    33             if prize.isdigit():
    34                 prize = int(prize)
    35             elif len(temp) == 2 and temp[0].isdigit() and temp[1].isdigit():  # 判断输入的工资是小数
    36                 prize = float(prize)
    37             elif prize == "q":
    38                 exit()
    39             else:
    40                 print("-----工资输入有误,请重新输入!-----")
    41                 continue
    42             for index, i in enumerate(goods):
    43                 print("%s.%s  %d" % (index, i["name"], i["price"]))
    44             while True:
    45                 num = input("请输入编号,购买商品(输入q表示退出):")
    46                 if not num: continue
    47                 if num.isdigit():
    48                     num = int(num)
    49                     if num < len(goods):
    50                         if goods[num]["price"] < prize:
    51                             prize -= goods[num]["price"]
    52                             buy_goods.append(goods[num])
    53                             print("-----商品 33[1;35;46m %s 33[0m 已加入购物车!-----" % goods[num]["name"])
    54                         else:
    55                             print("-----您得余额不够,请够买其他商品!-----")
    56                     else:
    57                         print("-----输入得编号不在商品范围内,请重新输入!-----")
    58                 elif num == 'q':
    59                     print("-----您的余额:33[1;31;47m %d 33[0m -----" % prize)
    60                     print("您购买了 %d 件商品:" % (len(buy_goods)))
    61                     for index, i in enumerate(buy_goods, 1):
    62                         print("%d.%s  %d" % (index, i["name"], i["price"]))
    63                     exit()
    64                 else:
    65                     print("-----输入编号有误,请重新输入!-----")
    66     else:
    67         print("-----用户名或密码有误,请重新输入!-----")
  • 相关阅读:
    ArcEngine连接表join
    坐标系统与投影变换及在ARCGIS中的应用
    ArcEngine 最短路径分析(源码)【转载】
    TOC图例符号转换到ListView
    Dijkstra 最短路径算法的一种高效率实现
    添加、删除连接(Join)和关联(Relate)VBA实例
    C# 实现在线软件自动升级程序
    MapX八个技巧
    希腊字母的读法
    经纬度点与投影坐标系下坐标点的互相转换
  • 原文地址:https://www.cnblogs.com/alice-bj/p/8427169.html
Copyright © 2011-2022 走看看