小于操作员未正确操作

Bit*_*eax -8 python

小于运算符对我来说不正常:

port = raw_input("Enter Port: ")
        if port <= 65535:
            print("Valid Port")
        else:
            print("Port Invalid")
Run Code Online (Sandbox Code Playgroud)

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

好吧,让它排序,我不知道它作为一个字符串返回.虽然,我有点失望,因为我被撕裂了,我没有达到所有具有多年经验的人的"高额"标准.

wil*_*l93 7

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

port = int(raw_input("Enter Port: "))
if port <= 65535:
    print("Valid Port")
else:
    print("Port Invalid")
Run Code Online (Sandbox Code Playgroud)

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

但是,请记住,Python 3删除了这两个函数,并用一个input()像Python 2一样的函数替换它们raw_input().所以,我建议使用int(raw_input())over,input()因为它更容易移植到Python 3,也因为"Explicit比隐含更好".