我不知道你能不能帮上忙,因为我已经看了半个小时了,我很困惑,我想我一定是错过了什么,所以我希望你能对此有所了解。
在我的程序中,我正在编写一个查询,该查询将搜索一个元组列表,以获取该人员的薪资。列表中的每个元组都是个人详细信息的单独记录,因此我使用了两个索引:一个用于循环的记录,另一个用于雇员的薪资。我的目标是计划要求你的最低和最高工资和程序打印的雇员的名字,谁是在这个工资范围内。
这一切似乎都很好,直到我意识到当输入值'100000‘作为最大值时,查询将不会输出任何内容。完全困惑,我试着输入'999999‘,然后工作,所有的记录都打印出来。我唯一能想到的就是这个程序忽略了额外的数字,而我不知道这是为什么?!
下面是我为该特定部分编写的代码,输出的最大值为999999 (我不想粘贴整个程序,因为这是一个课程项目,我希望防止在同一课程中的任何人可能抄袭我的作品,如果这使我的问题不清楚的话!):
所有记录中的最高工资是55000,因此为什么最低工资55000和最大值100000不起作用,但最高工资999999不起作用!
如果有更多的信息需要帮助,请询问!这可能似乎不清楚,但正如我前面所说,我不希望任何人剽窃和我的工作是无效的,因为这一点!所以我试着问这个问题,而没有在这里发布我所有的代码!
发布于 2016-07-28 21:07:16
考虑到您使用的是print函数(而不是Python2 print语句),看起来您正在编写Python3代码。在Python3中,input返回一个str。我猜您的数据也将薪水存储为str (否则比较将产生一个TypeError)。您需要将存储的值和input的结果转换为int,以便执行数值比较,而不是ASCIIbetical比较。
发布于 2016-07-28 21:05:34
当您使用Python从标准输入中读取时,无论您得到什么输入,都会以字符串的形式接收输入。这意味着您的比较函数的结果是:
if tuplist[x][2] > "0" and tuplist[x][2] < "999999" :你能看到现在的问题吗?因为这是家庭作业,我不想马上给你答案。
https://stackoverflow.com/questions/38646688
复制相似问题