python - 我的代码没有打印正确的值
问题描述
我有一个贯穿 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),这是错误的。
解决方案
一个可能的错误可能是您正在将第 8 行中的整数值与字符串值进行比较(在 if 条件内)
第 5 行中“金额”的输出将具有“字符串”类型,不能与任何数值进行比较。
我建议你把它转换成'int'
amount = int(input("bla bla"))
我希望你的输出row["Stock level"]
也是一个整数。如果不是,也将其放入 int() 函数中。
因此,您的最终代码将是:
int(row["Stock level"]) >= amount
现在试试。希望能帮助到你。如果这不起作用,请告诉我。
推荐阅读
- python - 酌情将行从一个数据帧分配到另一个数据帧
- python - 球体上三角形的六边形:从二十面体网格构建六边形/测地线网格(仅限北极)
- vba - 如何将项目添加到包含分号的组合框(使用 AddItem())?
- javascript - 如何编写分组算法,通过具有 3 个或更多相似属性对数据集中的项目进行分组
- r - 计算字符串出现在组列中的次数
- mysql - 如何使用 ORDER BY 计算行数直到某个值
- angular - Angular - Laravel 获得记录最多的前 5 个 ID
- typescript - 在 Typescript 中注释高阶函数
- reactjs - 从 componentWillReceiveProps 迁移到 getDerivedStateFromProps
- java - 以不同的身份膨胀 for 循环中的视图?