zoukankan      html  css  js  c++  java
  • python程序整理(1)

    '''
    用户登录验证
    要求:
    1. 系统⾃动⽣成4位随机数. 作为登录验证码. 直接用就好. 这里不用纠结
    提示. 生成随机数的办法.
     from random import randint
    num = 0
    verify_code = ""
    while num < 4:
        verify_code += chr(randint(65, 90))
        num += 1
    print(verify_code) # 四位随机验证码
    2. 用户输入⽤用户名和密码还有验证码.
    3. 用户可以有三次登录的机会. 但是验证码如果输入错误. 不计算在内
    '''
    from random import randint
    #正确的用户名和密码
    username = "alex"
    password = "123"

    count = 3
    while count > 0:
      #用户输入用户名和密码
      uname = input("请输入用户名:")
      pwd = input("请输入密码:")
      
      #生成验证码,每次生成的都是随机的(此处是题上提供的代码)
      num=0
      verify_code""
      
    while num < 4:
      verify_code += chr(randint(65, 90))
      num += 1
      
    # 用户输入验证码
      yzm = input("请输入验证码(%s)" % verify_code)
      #判断验证码是否正确
      if yzm.upper()!=verify_code:
        print("验证码错误!") #验证码错误,重新输入,并没有改变循环的次数限制,这样验证码错误就不会计算一次登录错误
      else:
        if uname == username and pwd == password:
          print("登陆成功!")
          break #退出程序
        else:
          print("对不起,用户名或密码错误")
          count -= 1 #用户登录失败,次数减一
          print("还有%s次机会" % count)
    '''
    数据结构:
    goods = [
    {"name": "电脑", "price": 1999},
    {"name": "鼠标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美女", "price": 998},
    ......
    ]
    
    功能要求:
        基础要求:
    
            1、启动程序后,输入用户名密码后,让用户输入工资,然后打印商品列表
    
            2、允许用户根据商品编号购买商品
    
            3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
    
            4、可随时退出,退出时,打印已购买商品和余额
    
            5、在用户使用过程中, 关键输出,如余额,商品已加入购物车等消息,需高亮显示
    
    
    扩展需求:
    
        1、用户下一次登录后,输入用户名密码,直接回到上次的状态,即上次消费的余额什么的还是那些,再次登录可继续购买
    
        2、允许查询之前的消费记录

    goods = [
    {"name": "电脑", "price": 1999},
    {"name": "鼠标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美女", "price": 998}
    ]
    #用户名密码
    username = "alex"
    password = "123"

    f = open("shopping_cart.txt",mode="r",encoding="utf-8")
    #从文件中读取到上次的余额,创建了一个文件
    "shopping_cart.txt"
    money = int(f.readline().strip().split(":")[1])
    #账户内的钱
    # 购物车
    # [{'id': 0, 'name':'电脑', 'price': 1999, 'totle': 10}]
    # [{'id': 编号, 'name':'商品', 'price': 价格, 'totle': 数量}]
    # 从文件中读取到购物车内的数据
    shoppingcart = eval(f.readline().strip())

    f.close()

    # 登录.
    while 1:
    uname = input("请输入你的用户名, 输入Q退出系统:")
    if uname.upper() == 'Q':
    print("系统退出")
    break
    pwd = input("请输入你的密码:")
    if uname == username and pwd == password:
    print("恭喜你. 登录成功")
    _money = int(input("您当前的余额是:%s, 输入任意数字进行充值, 输入0不充值: " % money))
    money += _money
    while 1:

    # 商品列表
    for i in range(len(goods)):
    print("%s, 商品: %s, 价格: %s" % (i+1, goods[i]['name'], goods[i]['price']))

    # 用户输入要购买的商品编号
    num = int(input("请输入您想要购买的商品编号:"))

    # 获取到用户购买的商品
    good = goods[num - 1]

    # 校验是否可以购买
    if money < good['price']: # 商品价格
    print("对不起, 余额不足! 您当前的余额是%s 请购买其他商品!" % money)
    continue # 重新显示商品列表
    else:
    for g in shoppingcart:
    if g['id'] == num - 1: # 查看购物车中是否已经拥有已经够买了的商品
    g['totle'] += 1 # 已经有了. 数量加1就可以了
    break # 结束购物车的添加
    else: # 购物车里没有该商品.
    # 将第一次购买的商品添加到购物车
    shoppingcart.append({'id': num-1, 'name': good['name'], 'price': good['price'], 'totle': 1})

    money = money - good['price'] # 扣款

    # 提示用户购买成功
    print("购买%s商品成功, 花费%s元, 您的余额是: %s" % (good['name'], good['price'], money))

    # 判断是否继续购物
    isContinue = input("请问是否继续购物. 输入任意内容继续, 输入N结束购物(N)")
    if isContinue.upper() == 'N':
    print("结束购物")
    # 购物流程结束. 打印购物已经购买的商品和余额. 此处可以写在"结束购物"位置
    print("您的余额是%s" % money)

    print("商品编号 商品名称 商品单价 购买数量 花费金额")
    for good in shoppingcart:
    print("%s %s %s %s %s" % (
    good['id'], good['name'], good['price'], good['totle'], (good['price'] * good['totle'])))

    # 将购物车中的内容和余额写入到文件中
    f = open("shopping_cart.txt", mode="w", encoding="utf-8")
    f.write("money:%s " % money)

    f.write(str(shoppingcart))
    f.flush()
    f.close()
    print("程序退出. 欢迎下次光临!")

    exit() # 结束购物

    else:
    print("对不起, 登录失败")
  • 相关阅读:
    redis05
    redis04
    redis03
    redis02
    C++编程学习(九)this指针&友元函数
    C++编程学习(八)new&delete动态内存分配
    ROS大型工程学习(二) 怎么阅读大型工程
    计算机操作系统学习(一) Linux常用指令(随时更新)
    ROS大型工程学习(一) 必须了解的基本文件
    单片机学习(一) 中断、定时器、优先级的一些理解
  • 原文地址:https://www.cnblogs.com/pythonz/p/9939593.html
Copyright © 2011-2022 走看看