如何用python打印购物小票 python基础打印购物小票

您所在的位置:网站首页 购买小票的说明 如何用python打印购物小票 python基础打印购物小票

如何用python打印购物小票 python基础打印购物小票

2024-05-31 04:45| 来源: 网络整理| 查看: 265

1.基本需求

编写一个购物小程序,要求实现如下功能:

(1)让用户输入工资;

(2)输出购物菜单及产品价格;

(3)计算用户是否可支付;

(4)输出用户剩余的钱,问用户是否继续购物,如果选择继续,则继续进行,否则退出程序;

(5)若钱不够,输出用户还需要工作多久才能买得起(这里暂不实现此功能)。

2.实现基本思路

基本思路可如下所示:

如何用python打印购物小票 python基础打印购物小票_python购物清单

在编写程序的时候即以该思路为主线,具体细节下面再提及。

3.实现细节

基于友好用户界面的原则,实现的细节可总结如下:

(1)用户输入工资时,如果输入的是非数字或没有输入,会有提示再次输入,而不会异常退出;

(2)用户输入购买物品时,如果输入的是非商品索引或非quit退出时,会有提示再次输入,而不会异常退出;

(3)每添加商品到购物列表后,会提示用户当前所剩余的money;

(4)用户选择退出时,会打印用户的购物清单,同时输出用户剩余的money;

(5)总的原则是,程序在执行过程中不会有异常情况出现,即使用户输入非法字符。

4.实现代码与注释

基于上述需求的实现代码如下:

#!/usr/bin/env python import sys market = [ ['Xiaomi Phone', 2400], ['Iphone', 6000], ['Computer', 3800], ['Ipad', 1800], ['Core Python', 69], ['Router', 109] ] shop_list = []#The shopping list of the buyer. while True: salary = raw_input('Please input your salary per month:').strip() if not salary.isdigit(): print 'Please enter your salary.' continue salary = int(salary) print "Welcome to our market!You can buy something cool here, or you can enter 'quit' to left.\n" break #Upon:input the salary per month.输入工资同时避免异常情况。 while True: print 'The goods we serve are as follow:' for goods in market: print market.index(goods),goods[0],goods[1] #Upon:print the goods list. choice = raw_input('What do you want to buy?') if choice == 'quit':#'quit' system print '\nYour shopping list are as follow:' for goods in shop_list: print goods[0],goods[1] print 'Now you have %d left.' % (salary) sys.exit('Goodbye!') elif len(choice) == 0:#'enter' system continue #实际上'luanma' system和'enter' system可以只用前者进行替代,这里只是想输出不同提示而已。 (即输入乱码时会提示,输入enter时不进行提示。) if not choice.isdigit():#'luanma' system,即如果用户输入非数字时,会有提示 print 'Please input the right choice.(Number to buy things and quit to quit.)\n' continue #Upon: 'quit' system , 'enter' system and 'luanma' handle system. choice = int(choice) if choice >= len(market): print 'Could not find the item, try again!\n' continue pri = market[choice] #Upon:To check if the number is legal.确认输入的数字是否在合法范围内 pri = market[choice] if pri[1] 直接输入'Enter'时会有提示 Please input your salary per month:klkdf Please enter your salary. ===>输入乱码时也会有提示 Please input your salary per month:10000 Welcome to our market!You can buy something cool here, or you can enter 'quit' to left. The goods we serve are as follow: ===>先打印了一个商品菜单 0 Xiaomi Phone 2400 1 Iphone 6000 2 Computer 3800 3 Ipad 1800 4 Core Python 69 5 Router 109 What do you want to buy?0 ===>正确输入商品索引号,会提示当前用户购物信息 You have added Xiaomi Phone to your shopping list, and you have 7600 left. The goods we serve are as follow: 0 Xiaomi Phone 2400 1 Iphone 6000 2 Computer 3800 3 Ipad 1800 4 Core Python 69 5 Router 109 What do you want to buy? ===>只输入'Enter'时,不会有提示输出,但会再次打印商品菜单 The goods we serve are as follow: 0 Xiaomi Phone 2400 1 Iphone 6000 2 Computer 3800 3 Ipad 1800 4 Core Python 69 5 Router 109 What do you want to buy?3 You have added Ipad to your shopping list, and you have 5800 left. The goods we serve are as follow: 0 Xiaomi Phone 2400 1 Iphone 6000 2 Computer 3800 3 Ipad 1800 4 Core Python 69 5 Router 109 What do you want to buy?eqwer ===>输入乱码时,会有提示,并接受再次输入 Please input the right choice.(Number to buy things and quit to quit.) The goods we serve are as follow: 0 Xiaomi Phone 2400 1 Iphone 6000 2 Computer 3800 3 Ipad 1800 4 Core Python 69 5 Router 109 What do you want to buy?9 ===>输入不在合法范围内的数字时,也会有提示 Could not find the item, try again! The goods we serve are as follow: 0 Xiaomi Phone 2400 1 Iphone 6000 2 Computer 3800 3 Ipad 1800 4 Core Python 69 5 Router 109 What do you want to buy?quit ===>正常退出,会打印用户总的购物清单信息 Your shopping list are as follow: Xiaomi Phone 2400 Ipad 1800 Now you have 5800 left. Goodbye!

相对来说,用户界面还是比较友好的,因为不会有太大的异常情况出现,同时也实现了基本的需求。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3