python之编写购物(第二天)

#_*_ coding:utf-8 _*_

import sys,os,getpass

######################对raw_input输入字符类型判断并转化#####################def input_handle(s):    if str.isdigit(s):                            ###对输入是否是数字进行判断###        s = int(s)                                ###如果输出的是个数字,则转化为整数类型###    return s

####################框架函数###################################def framework(name=‘‘,balance=‘‘):    os.system(‘cls‘)                             ###清屏###    balance = int(balance)    print(‘‘‘*******************************************************************                                                                **                          欢迎来到sky购物平台                    **                                                                *******************************************************************                                                                *                                       会员:%s   当前余额:%d‘‘‘ % (name,balance))

########################商品列表展示函数#######################def shop_show(shop_dict):

    res_dict = {}    ############对商品列表进行遍历并加上数字编号###############    i = 1    print(‘商品列表 :‘)    print(‘================================================================‘)    print(‘%-5s \t %-20s \t %-10s \t %-10s‘ % (‘编号‘,‘商品名称‘,‘商品价格(元)‘,‘商品数量(个)‘))    for k in shop_dict:        v = shop_dict[k]        if type(v) is dict:            print(‘%-5d \t %-20s \t %-10s \t %-10s‘ % (i,k,v[‘price‘],v[‘num‘]))            res_dict[i] = [k,v[‘price‘],v[‘num‘]]        i += 1    print(‘================================================================‘)    print(‘q : Exit‘)    return res_dict

#########################购物车函数#############################def shopping_cart(shop_cart):

    ############对商品列表进行遍历并加上数字编号###############    print(‘###################欢迎来到您的购物车##################‘)    print(‘%-20s \t %-10s \t %-10s \t %-10s‘ % (‘商品名称‘,‘商品价格(元)‘,‘购买数量(个)‘,‘购买总金额(元)‘))    for k in shop_cart:        v = shop_cart[k]        if type(v) is list:            print(‘%-20s \t %-10d \t %-10d \t %-10d‘ % (k,v[0],v[1],v[2]))

    print(‘###################请确认您购买商品####################‘)

################################主程序开始################################

shopping_dict = {             ‘iphone6‘: {‘price‘:6000,‘num‘:10},             ‘ipad‘: {‘price‘:3000,‘num‘:20},             ‘mi4‘: {‘price‘:2000,‘num‘:43},             ‘huawei6_plus‘: {‘price‘:1999,‘num‘:8},}

i = 0while i < 3:                                                       #只要用户登录异常不超过3次就不断循环    name = raw_input(‘请输入用户名:‘)                             #输入用户名    passwd = raw_input(‘请输入密码:‘)                             #输入隐藏密码    user_file = open(‘info.txt‘,‘r‘)                              #打开帐号文件    user_list = user_file.readlines()                                   for user_line in user_list:                                     #对帐号文件进行遍历        (user,password,balance) = user_line.strip(‘\n‘).split()     #分别获取帐号、密码信息和当前余额        balance = int(balance)        if name == user and passwd == password:                     #如用户名和密码正常匹配            my_shop_cart = {}            first_flag = 1            while first_flag:                framework(user,balance)                new_dict = shop_show(shopping_dict)                shop_index = raw_input(‘请输入商品编号 | 退出(q): ‘)                ###############如果输入非空,对输入进行判断并转化类型###########                if len(shop_index) != 0:                    shop_index = input_handle(shop_index)

                if shop_index == ‘q‘:                            ###如果输入为q,则退出程序###                    sys.exit(0)                elif shop_index in new_dict:                    (shop_name,shop_price,shop_num) = (new_dict[shop_index][0], new_dict[shop_index][1], new_dict[shop_index][2])                    print(‘商品信息 【 名称:%-15s \t 价格:%-5d(元) \t 数量:%-5d(个)】‘ % (shop_name,shop_price,shop_num))

                    second_flag = 1                    while second_flag:                        shop_num = raw_input(‘请输入购买商品个数 | 返回(b) | 退出(q): ‘)                        if len(shop_num) != 0:                            shop_num = input_handle(shop_num)                        if shop_num == ‘q‘:                            ###如果输入为q,则退出程序###                            sys.exit(0)                        elif shop_num == ‘b‘:                            break                        elif shop_num > 0 and shop_num <= new_dict[shop_index][2]:                            shop_sum = shop_price * shop_num                            if shop_sum <= balance:                                print(‘购买商品 %s 总价格为 : %d‘ % (shop_name,shop_sum))                                add_flag = raw_input(‘请确认是否加入购物车(y | n):‘)                                if add_flag == ‘y‘:                                    my_shop_cart[shop_name] = [shop_price,shop_num,shop_sum]

                                    balance -= shop_sum                                    shopping_dict[shop_name][‘num‘] -= shop_num                                    second_flag = 0                                else:                                    break                            else:                                print(‘您的余额不足,请充值或重新选择,谢谢‘)                        else:                            pass                    shopping_cart(my_shop_cart)                else:                    pass    else:        if i != 2:                                                  #i=2时,是最后一次机会,不用在提示还剩余0次机会了            print(‘用户或密码错误,请重新输入,还有 %d 次机会‘ % (2 - i))    i += 1                                                          #当用户输入错误时,循环值增加1else:    sys.exit(‘用户或密码输入错误超过三次,退出系统,欢迎下次光临‘)              #用户输入三次错误后,异常退出

user_file.close()                                                   #关闭帐号文件
时间: 2024-08-05 23:40:39

python之编写购物(第二天)的相关文章

Python程序编写购物小程序

购物车要求: 用户名和密码存放于文件中 启动程序后,先登录,登录成功则让用户输入工资,然后打印商品列表,失败则重新登录,超过三次则退出程序 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时退出,退出时,打印已购买商品和余额 #!/usr/bin/env python # -*- coding: utf-8 -*- ''' 用户名和密码存放于文件中 启动程序后,先登录,登录成功则让用户输入工资,然后打印商品列表,失败则重新登录,超过三次则退出程序 允许

SecureCRT中python脚本编写

SecureCRT中python脚本编写学习指南 SecureCRT python 引言 在测试网络设备中,通常使用脚本对设备端进行配置和测试以及维护:对于PE设备的测试维护人员来说使用较多是SecureCRT工具:SecureCRT支持VB.JavaScript.Python等多种脚本语言,为了实现脚本在CRT中更加丰富稳定地执行,掌握CRT的常用函数是非常有用的.接下来的时间我将对SecureCRT脚本编写的常用函数展开学习应用. 内容 (1)使用python语言实现SecureCRT中的D

Python基础教程(第二章 列表和元组)

本文内容全部出自<Python基础教程>第二版,在此分享自己的学习之路. ______欢迎转载:http://www.cnblogs.com/Marlowes/p/5293195.html______ Created on Xu Hoo 本章将引入一个新的概念:数据结构.数据结构是通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其他数据结构.在Python中,最基本的数据结构是序列(sequence),序列中的每个元素被分配一个序号——即

Python :编写条件分支代码的技巧

『Python 工匠』是什么? 我一直觉得编程某种意义是一门『手艺』,因为优雅而高效的代码,就如同完美的手工艺品一样让人赏心悦目. 在雕琢代码的过程中,有大工程:比如应该用什么架构.哪种设计模式.也有更多的小细节,比如何时使用异常(Exceptions).或怎么给变量起名.那些真正优秀的代码,正是由无数优秀的细节造就的. 序言 编写条件分支代码是编码过程中不可或缺的一部分. 如果用道路来做比喻,现实世界中的代码从来都不是一条笔直的高速公路,而更像是由无数个岔路口组成的某个市区地图.我们编码者就像

Effective Python之编写高质量Python代码的59个有效方法

                                                     这个周末断断续续的阅读完了<Effective Python之编写高质量Python代码的59个有效方法>,感觉还不错,具有很大的指导价值.下面将以最简单的方式记录这59条建议,并在大部分建议后面加上了说明和示例,文章篇幅大,请您提前备好瓜子和啤酒! 1. 用Pythonic方式思考 第一条:确认自己使用的Python版本 (1)有两个版本的python处于活跃状态,python2和pyt

Python之路【第二篇】:Python基础(一)

Python之路[第二篇]:Python基础(一) 入门知识拾遗 一.作用域 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. 1 2 3 if 1==1:     name = 'wupeiqi' print  name 下面的结论对吗? 外层变量,可以被内层变量使用 内层变量,无法被外层变量使用 二.三元运算 1 result = 值1 if 条件 else 值2 如果条件为真:result = 值1如果条件为假:result = 值2 三.进制 二进制,01 八进

Python之编写函数

Python之编写函数 在Python中,定义一个函数要使用 def 语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用 return 语句返回. 我们以自定义一个求绝对值的 my_abs 函数为例: def my_abs(x): if x >= 0: return x else: return -x 请注意,函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回.因此,函数内部通过条件判断和循环可以实现非常复杂的逻辑. 如果没

运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程,把获取的信息存入数据库

运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程 有关前两篇的链接: 运用Python语言编写获取Linux基本系统信息(一):获得Linux版本.内核.当前时间 运用Python语言编写获取Linux基本系统信息(二):文件系统使用情况获取 一.实验环境: Python2.7.10.pycharm.VM虚拟机.CentOS6.3.mysql 二.MySQLdb模块: MySQLdb模式是Python中专门连接MySQL数据库的模块,另外Python开发环境的搭

Python核心编程(第二版) 第六章习题答案

6–1.字符串.string 模块中是否有一种字符串方法或者函数可以帮我鉴定一下一个字符串是否是另一个大字符串的一部分? 答:有,string.find(str,beg,end) 6–2.字符串标识符.修改例 6-1 的 idcheck.py 脚本,使之可以检测长度为一的标识符,并且可以识别 Python 关键字,对后一个要求,你可以使用 keyword 模块(特别是 keyword.kelist)来帮你. 1 #!/usr/bin/python 2 3 import string 4 impo