老师您好,可以给我点建议吗?

老师您好,可以给我点建议吗?

​老师您好,我利用您教的基础知识给自己出了一道题,我昨天做了一整天,发现第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


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学,你好!

1、eval(input())当input输入的值是数字时,eval()会转换为int类型;当input()输入的值是非数字时,eval()执行时会报错

2、建议:可以将cp设置为消费金额,初始值设置为0,每消费一次都会对cp的值进行累加计算,从而知道一共消费了多少金额

http://img1.sycdn.imooc.com//climg/612c94e60916a55f02870180.jpg

http://img1.sycdn.imooc.com//climg/612c94fa098950f808360117.jpg

3、可以先判断ubuy的值是否等于n,若条件不成立再使用eval()

http://img1.sycdn.imooc.com//climg/612c951a091ddcac11060303.jpg

祝学习愉快!

  • TheCreamPuff 提问者 #1

    谢谢老师😉

    2021-08-30 17:28:19
  • TheCreamPuff 提问者 #2

    老师 我突然好崇拜你 这题目真的困扰我一整晚睡不着 哈哈哈 被你两三下就处理好了😂

    2021-08-30 17:38:45
  • 好帮手慕美 回复 提问者 TheCreamPuff #3

    非常感谢同学的认可哦!程序报错后根据错误信息可以知道报的是什么错,再找到相应的代码行进行分析报错原因,再进行解决就可以了。祝学习愉快!

    2021-08-31 11:24:17
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师