本站消息

站长简介/公众号


站长简介:高级工程师,爱好交友,无偿辅导python和前端,技术交流,面试指导,找工作指导,瞎聊都可加我微信i88811i哈,欢迎欢迎!也欢迎加入程序员交流群,专属程序员的圈子,加我微信拉你进群.欢迎关注我的微信公众号:程序员总部,程序员的家,探索程序员的人生之路!分享IT最新技术,关注行业最新动向,让你永不落伍。了解同行们的工资,生活工作中的酸甜苦辣,谋求程序员的最终出路!

  价值13000svip视频教程,python大神匠心打造,零基础python开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

需要帮助理解 python 中的字典

发布于2022-01-28 03:19     阅读(835)     评论(0)     点赞(1)     收藏(1)



我是编码新手并写了一个脚本。我不明白为什么显示的总数是错误的,并且每次运行程序时都会发生变化。我知道字典不会每次都以相同的顺序存储键和值,但我不明白为什么总数是错误的并且永远不一样?有人可以帮忙吗?我正在寻找解释,以便从错误中吸取教训。

stock = [["mp40", 4], ["crowbar", 3], ["machete", 4], ["5_person_tent", 3],
         ["gps", 10], ["duffle_bag", 3], ["first_aid_kit", 2], ["horse", 1],
         ["military_mre", 7], ["camping_stove", 1], ["hunting_vest", 2],
         ["jogging_pants", 3], ["timberlands", 2], ["gas_generator", 3],
         ["gasoline", 500], ["gas_can", 100], ["pontiac_grand_dam", 1]]

prices = [["mp40", 390], ["crowbar", 20], ["machete",40],["5_person_tent",250],
          ["gps", 97], ["duffle_bag",20], ["first_aid_kit",15], ["horse", 3000],
          ["military_mre",15],["camping_stove",15], ["hunting_vest", 60],
          ["jogging_pants", 60], ["timberlands", 150], ["gas_generator",180],
          ["gasoline", 3],["gas_can", 20], ["pontiac_grand_dam", 2000]]


def buy():
    purchase =input("What item you want to buy?\n")
    total = 0
    for item in stock:
        if purchase in stock.keys(): 
            if stock[item] > 0:
                amount =int(input("How many would you like to purchase?\n"))
                total += (prices[item]*(amount))
                stock[item] -=(amount)
                print ('You owe'+' '+'$'+str(total))
                input('press enter to continue \n')
                return total

            if stock[item]<1:
                print ("we don't have any left\n")

        if purchase!=item:
            print ("We do not sell that.\n")

a=0
while a==0:
    buy()

解决方案


你需要制作字典,而不是列表stockprices幸运的是,您当前的数据使这很容易,因为dict可以将键值对列表作为参数。那是,

stock = [...]   # current definition
stock = dict(stock)

prices = [ ... ] # current definition
prices = dict(prices)

“手动”定义字典看起来像

stock = {"mp40":4,
         "crowbar":3,
         "machete":4, } # etc

站长简介:高级工程师,爱好交友,无偿辅导python和前端,技术交流,面试指导,找工作指导,瞎聊都可加我微信i88811i哈,欢迎欢迎!也欢迎加入程序员交流群,专属程序员的圈子,加我微信拉你进群
欢迎关注我的公众号:程序员总部,关注公众号回复python,免费领取 全套python视频教程,关注公众号回复充值+你的账号,免费为您充值1000积分







所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/1274633/751b58a6e5356e5f3df9/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

1 0
收藏该文
已收藏

评论内容:(最多支持255个字符)