老师您好,可以给我点建议吗?
老师您好,我利用您教的基础知识给自己出了一道题,我昨天做了一整天,发现第52行ubuy = eval(......)到第65行jx = input(....)代码出现了一点点不知道如何表达的错误,第53行if ubuy == 'n':这里怎样都运行不起来,希望老师可以运行一下我的代码,然后给我一些实质性的建议,谢谢老师 !!
# coding:utf-8
'''
数据结构
goods = [
{"name":"电脑","price":1999},
{"name":"鼠标","price":10},
{"name":"游艇","price":20},
{"name":"美女","price":998},
......
]
功能要求:
1、启动程序后,输入用户名密码后,让用户输入余额,
2、然后打印商品列表
页面显示 序号 + 商品名称 + 商品价格,如:
1 电脑 1999
2 鼠标 10
...
n 购物车结算
3、用户输入商品编号或n
4、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
5、用户输入n结束购买过程,打印出该用户购买的商品信息,数量,单价,以及余额
'''
# 数据结构
goods = [
{"name": "电脑", "price": 1999},
{"name": "拍立得", "price": 599},
{"name": "相纸", "price": 20},
{"name": "口红套装", "price": 998},
{"name": "哆啦A梦", "price": 9999},
]
username = 'feng'
password = '123456'
count = 3
while 1:
uname = input('username>>>:')
upwd = input('password>>>:')
if uname == username and upwd == password:
print('登录成功!')
umoney = float(input('请输入你的余额>>>:'))
while 2:
for i in goods:
print("%s %s %s" % (goods.index(i) + 1, i["name"], i["price"]))
print('n 购物车结账')
ubuy = eval(input('请输入您需要购买的商品的序号:'))
if ubuy == 'n':
print('您好,恭喜您消费了{}元'.format(umoney - goods[ubuy]["price"]))
break
print('您已将%s放入了您的购物篮' % goods[ubuy - 1]['name']) # 打印需要购买的商品
cp = goods[ubuy - 1]["price"] # Commodity prices商品价格
tbo = umoney - cp # The balance of购买后的余额
if cp > umoney:
print('你个穷光蛋!!')
break
else:
jx = input('请按回车继续挑选商品:')
break
else:
count = count - 1
if count > 0:
print('用户名或密码错误!')
print('您还有{}机会,请重新输入账户密码:'.format(count))
else:
print('又错!!去死吧!这都记不住账户密码!!')
break
15
收起
正在回答
1回答
同学,你好!
1、eval(input())当input输入的值是数字时,eval()会转换为int类型;当input()输入的值是非数字时,eval()执行时会报错
2、建议:可以将cp设置为消费金额,初始值设置为0,每消费一次都会对cp的值进行累加计算,从而知道一共消费了多少金额
3、可以先判断ubuy的值是否等于n,若条件不成立再使用eval()
祝学习愉快!
Python全能工程师
- 参与学习 人
- 提交作业 16233 份
- 解答问题 4470 个
全新版本覆盖5大热门就业方向:Web全栈、爬虫、数据分析、软件测试、人工智能,零基础进击Python全能型工程师,从大厂挑人到我挑大厂,诱人薪资在前方!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星