小于操作员未正确操作

时间:2015-12-27 23:02:10

标签: python

小于操作符对我来说不正常:

port = raw_input("Enter Port: ")
        if port <= 65535:
            print("Valid Port")
        else:
            print("Port Invalid")

但是,每当我输入任意十或百的66到99的端口,例如166或766或889,它将无效,但下面的任何内容都可以。它就像是只注册/看到“65”部分。我试过在65535周围没有"",但总是返回无效。

好吧,把它整理好了,我不知道它是以字符串形式返回的。虽然,我有点失望,因为我被撕裂了,我没有达到所有具有多年经验的人的“高额”标准。

2 个答案:

答案 0 :(得分:7)

您正在按字典顺序进行比较。您应该将输入转换为数字,并将其与数字进行比较:

port = int(raw_input("Enter Port: "))
if port <= 65535:
    print("Valid Port")
else:
    print("Port Invalid")

还要考虑在Python 2中,您可以使用input()函数来读取整数而不是raw_input()。行为将等同于eval(raw_input()),因此如果用户键入一个整数,它将返回一个整数,如果用户键入一个浮点数,则返回一个浮点数,依此类推。

但是,请记住,Python 3删除了这两个函数,并使用一个与Python 2 input()类似的raw_input()函数替换它们。所以,我建议使用int(raw_input())而不是input(),因为它更容易移植到Python 3,也因为"Explicit is better than implicit"

答案 1 :(得分:1)

确保比较整数,而不是字符串。 例如,在进行比较之前将字符串转换为整数:

if int(port) <= 65535:
  print("Valid Port")
else:
  print("Port Invalid")