Python 练习题_简易购物车

命题:

  1. 启动程序后,让用户输入工资,然后打印商品列表
  2. 允许用户根据商品编号购买商品
  3. 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
  4. 可随时退出,退出时,打印已购买商品和余额

伪代码

shopping_car = []
balance = input usr‘s balance
(check parameter‘s legality)

while TRUE {
    show commodity list
    choice = user input
    if choice.isdigit {
        if choice > number of commodity{
            print("invalid input")
            continue
        }
        item = commodity[choice]
        if item.price < balance {
            shopping_car.append(item)
            balance -= item.price
            print("item add success, balance:%d")
        }
        else{
            print("balance is not enough!")
        }
    }
    else{
        if choice == ‘q‘{
            print("your shopping things & balance")
            break
        }else {
            print("invalid input")
        }
    }
}

源码:

#! /usr/local/bin/python3.5

import sys

commodity = [
    ("iphone", 5888),
    ("MacBook", 12888),
    ("StarBark", 60),
    ("Bike", 1000)
]

shopping_car = []

while True:
    balance = input("input your balance:")
    if balance.isdigit():                            #检查是不是整形
        balance = int(balance)                        #类型转换整形
        break
    else:
        if balance == ‘q‘:
            sys.exit(0)
        else:
            print("----->Invalied input!!!")

while True:
    for index, cl in enumerate(commodity):    #对于list,该函数将其转换为索引序列
        print("\n", index, cl)
    uc = input("Input your choice:")    #输入选择
    if uc.isdigit():
        uc = int(uc)
        if uc < len(commodity) and uc >=0:
            item = commodity[uc]
            if item[1] <= balance:
                shopping_car.append(item)
                balance -= item[1]
                print("%s add shopping car sucess!"%item[0])
            else:
                print("your balance is not enough!")
        else:
            print("------->Invalid input!")
    elif uc == ‘q‘:
        print("----------shopping list-----------")
        for c in shopping_car:
            print(c)
        print("your balance:%d"%balance)
        break;
    else:
        print("------->Invalid option")

原文地址:https://www.cnblogs.com/yangdadahome/p/8149896.html

时间: 2024-08-02 03:57:46

Python 练习题_简易购物车的相关文章

Python 练习1——简易购物车

简易购物车用于了解购物车的大致原理,利用Python实现简易购物车的基本功能,即:用户将所选择的商品放入购物车中,结算时自动输出所购买商品及所剩余额. # -*- coding: UTF-8 -*- product_list = [ ('iphone',6000), ('Mac Pro',10000), ('bike',2000), ('Watch',16000), ('coffee',30), ('book',40)]shopping_list = []salary = input("Inpu

Python(31)_简易加法运算器

#-*-coding:utf-8-*- ''' input简易计算器 ''' # 去掉前后空格 content = input('>>>').strip() # 返回列表类型的 conl = content.split('+') print(conl) num = 0 for i in conl: # 这题要知道的是int()转换会自动去掉空格 num +=int(i) print(num) 这题其实是有难度的,要是自己不看答案,能把这个小需求实现吗.连这个都实现不了,还想做开发???

python练习_购物车(简版)

python练习_购物车(简版) 需求: 写一个python购物车可以输入用户初始化金额 可以打印商品,且用户输入编号,即可购买商品 购物时计算用户余额,是否可以购买物品 退出结算时打印购物小票 以下代码实现的功能与思路: 功能: (1)预算金额控制,只能输入大于0的数字 (2)商品格式化打印 (3)选择完成要买的商品后,提示用户再次确认,确认后开始计算用户余额是否大于等于商品价格,价格正确后则加入购物车 (4)输入q则进行结算,结算时将重复的商品进行合并,显示个数,并计算消费总额和余额 思路:

Python练习题8(替换相同的字符串并输出):输入两个字母串,将两个字母串都包含的字母用&#39;_&#39;替换后,输出两个字母串的剩余部分 (不能为空串,区别大小写,只能包含字母)

方法一:检查输入是否为空串,循环字母串,相同的则替换,然后再用replace()方法去除,输出想要的结果 1 def str_replace(messages1,messages2): 2 if messages1.strip() == '' or messages2.strip() == '' : #检验输入不能为空串 3 tips = "输入字母串有空串,不合法" 4 return tips 5 6 if not messages1.encode('UTF-8').strip().

Python练习题 024:求位数及逆序打印

[Python练习题 024] 给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. ---------------------------------------------- 这题如果不用递归,实在太简单了!!!代码上: str = input('请输入一个不多于5位的正整数:') print('这个数字是%s位数,逆序为%s.' % (len(str), str[::-1])) 输出结果如下: 请输入一个不多于5位的正整数:45931这个数字是5位数,逆序为13954

python中_、__和__xx__的区别

python中_.__和__xx__的区别 本文为译文,版权属于原作者,在此翻译为中文分享给大家. 英文原文地址:Difference between _, __ and __xx__ in Python 在学习Python时,很多人都弄不清楚各种下划线的意思,而且在这之前已经给其他人解释过很多遍了,是时候把它记录下来. "_"单下划线 Python中不存在真正的私有方法.为了实现类似于c++中私有方法,可以在类的方法或属性前加一个“_”单下划线,意味着该方法或属性不应该去调用,它并不

python练习题:循环打印嵌套列表

好久没写博文了,添加一个练习题,选自<head_first_python>~~ python列表:以中括号开始和结束"[]":列表项以逗号","分隔开,使用赋值操作符"="赋予一个标识符.如: movies=["the holy",1975,"terry jones",91,["graham",["michael","john",&qu

Python练习题 028:求3*3矩阵对角线数字之和

[Python练习题 028] 求一个3*3矩阵对角线元素之和 ----------------------------------------------------- 这题解倒是解出来了,但总觉得代码太啰嗦.矩阵这东西,应该有个很现成的方法可以直接计算才对-- 啰嗦代码如下: str = input('请输入9个数字,用空格隔开,以形成3*3矩阵:') n = [int(i) for i in str.split(' ')] #获取9个数字 mx = [] #存储矩阵 for i in ra

Python练习题 027:对10个数字进行排序

[Python练习题 027] 对10个数字进行排序 --------------------------------------------- 这题没什么好说的,用 str.split(' ') 获取输入的10个数字,然后用 lst.sort() 就完成排序了.代码如下: s = input('请输入10个数字,以空格隔开:') n = [int(x) for x in s.split(' ')] n.sort() print(n) 输出结果如下: 请输入10个数字,以空格隔开:3 23 4