小于运算符对我来说不正常:
port = raw_input("Enter Port: ") if port <= 65535: print("Valid Port") else: print("Port Invalid")
但是,每当我输入66到99之间的任何十或百,例如166或766或889的端口时,它将无效,但下面的任何内容都可以.它就像是只注册/看到"65"部分.我试过没有""
65535左右,但总是返回无效.
好吧,让它排序,我不知道它作为一个字符串返回.虽然,我有点失望,因为我被撕裂了,我没有达到所有具有多年经验的人的"高额"标准.
您正在按字典顺序进行比较.您应该将输入转换为数字,并将其与数字进行比较:
port = int(raw_input("Enter Port: ")) if port <= 65535: print("Valid Port") else: print("Port Invalid")
还要考虑在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比隐含更好".