最小和最大查询无法正常工作(Python 3.5)

时间:2016-07-28 21:02:00

标签: python python-3.x

我想知道你是否可以提供帮助,因为我已经看了好半个小时了,我完全不知所措,我想我一定会错过一些东西,所以我希望你能对此有所了解。

在我的程序的这个区域中,我正在编写一个查询,该查询将搜索元组列表以获取该人的工资。列表中的每个元组都是人员详细信息的单独记录,因此我使用了两个索引;一个用于记录的记录,一个用于雇员的工资。我的目标是让该计划向您询问最低和最高工资,并为该计划打印该薪资范围内的员工姓名。

这一切似乎都很好,直到我意识到当输入值'100000'作为最大值时,查询将不输出任何内容。完全不知所措我尝试进入'999999'然后工作,所有记录都打印出来。我唯一能想到的是该程序忽略了额外的数字,我无法弄清楚为什么会这样?!

下面是我的特定部分的代码和最大值为999999的输出(我不想粘贴整个程序,因为这是一个课程项目,我想阻止同一课程的任何人可能复制我的工作对不起,如果这让我的问题不清楚!):

所有记录中的最高工资是55000,因此为什么最小0和最大100000不起作用,但最多不是999999,这是不合理的!

如果需要更多信息,请询问!这可能看起来不太清楚,但就像我上面说的那样,我不希望班上的任何人抄袭我的工作因此而无效!所以我试图在没有在此发布我的所有代码的情况下问这个问题!

2 个答案:

答案 0 :(得分:1)

当您从Python中的标准输入读入时,无论您获得什么输入,您都会以字符串形式接收输入。这意味着您的比较函数会产生:

if tuplist[x][2] > "0" and tuplist[x][2] < "999999" :

你能看出现在的问题吗?因为它是一项家庭作业,所以我不想马上给你答案。

答案 1 :(得分:1)

鉴于您使用print函数(而不是Python 2 print语句),看起来您正在编写Python 3代码。在Python 3中,input返回str。我猜你的数据也将工资存储为str(否则比较会产生TypeError)。您需要将存储的值和input的结果转换为int,以便执行数字比较,而不是ASCIIbetical比较。