列表练习题

题:

1、启动程序,让用户输入工资,然后打印商品列表;

2、允许用户根据商品编号购买产品;

3、用户选择商品后,检测余额是否够,够就直接买,不够提醒;

4、可随时退出程序,打印购买商品和余额。

关键语句: enumerate  .isdigit
     enumerate'取出列表下标    .isdigit 将字符或数字型数字强行转成整型数字
my_list = []  #临时购物车
shopping_list = [(
'iphone8'
, 
10000
), (
'huawei'
, 
20000
), (
'sansung'
, 
15000
), (
'
可乐
'
, 
5
), (
'
拉面
'
, 
3
)]  #商品列表
salary = 
input
(
'
请输入您的收入:
'
)    #工资
if 
salary.isdigit():   #判断输入工资是否是数字
    salary = 
int
(salary)   #将数字或字符强行转成数字
    
while True
:  #while 循环
        
for 
index, item 
in 
enumerate
(shopping_list):   #
            
print
(
'
本店产品如下
'
, index, item)
        your_choice = 
input
(
'
请输入你的选择:
'
)   #选择购买商品的编码
        
if 
your_choice.isdigit():                                 #判断输入的信息是否是数字
            your_choice = 
int
(your_choice)                #强制转型数字
            
if 
your_choice < 
len
(shopping_list) 
and 
your_choice >= 
0
:     #如果输入的数字大于0小于列表最大的数字
                p_item = shopping_list[your_choice]          #定义商品
                
if 
p_item[
1
] <= salary:                               #判断工资是否大于商品价格
                    my_list.append(p_item)                            #如果工资高于价格 将商品加入购物车
                    salary -= p_item[
1
]                                   #做购买付款处理
                    
print
(
'
您购买的产品是
%s
,账号还剩
%s
元!
' 
% (p_item[
0
], salary))    #打印已买商品和用户余额
                
else
:
                    
print
(
'
没钱瞎逛个屁!
'
)                             #判断如果工资低于商品价格,输出没钱。。。。
            
else
:
                
print
(
'
没有你输入的选项!
'
)                           #判断 输入的信息不符,打印
        
elif 
your_choice == 
'q'
:                                         #判断 输入等于q 退出程序,并打印购物车商品和余额
            
print
(
'----my list is : -----'
)
            
for 
p 
in 
my_list:
                
print
(p)
            
exit
()
        
else
:
            
print
(
'
你输入的信息不合法
!'
)                           #判断输入合不合法
else
:
    
print
(
'
你输入的不是数字,请重新输入!
'
)              #判断输入合不合法