首页 > 解决方案 > 我的代码没有打印正确的值

问题描述

我有一个贯穿 data.csv 文件的代码,它会打印出值。但是这些值不适合测试用例。

导入 csv filePath="data.csv" with open(filePath) as csvfile: reader=csv.DictReader(csvfile)

    print("========================================================")
    print("Display item stock level above certain amount")
    print("========================================================")
    amount = input("Enter amount : ")
    print("========================================================")

    for row in reader:
        if (row['STOCK LEVEL'] >= amount):
            print("PRODUCT ID : {0}\nNAME : {1}\nLEVEL : {2}".format(row['PRODUCT ID'],row['NAME'],row['STOCK LEVEL']))
            print()

我的代码询问用户的 int 输入,并会通读文件并打印项目的详细信息,例如产品 ID、名称、库存水平。

但是当我输入 8 时,它应该打印 8 和 12 以上库存级别的详细信息,但它只打印 8 的详细信息。当我要求 12 时,它会打印每个项目的详细信息,(5、7、8、 12),这是错误的。

标签: python

解决方案


一个可能的错误可能是您正在将第 8 行中的整数值与字符串值进行比较(在 if 条件内)

第 5 行中“金额”的输出将具有“字符串”类型,不能与任何数值进行比较。

我建议你把它转换成'int'

amount = int(input("bla bla"))

我希望你的输出row["Stock level"]也是一个整数。如果不是,也将其放入 int() 函数中。

因此,您的最终代码将是:

int(row["Stock level"]) >= amount

现在试试。希望能帮助到你。如果这不起作用,请告诉我。


推荐阅读