小于操作符对我来说不正常:
port = raw_input("Enter Port: ")
if port <= 65535:
print("Valid Port")
else:
print("Port Invalid")
但是,每当我输入任意十或百的66到99的端口,例如166或766或889,它将无效,但下面的任何内容都可以。它就像是只注册/看到“65”部分。我试过在65535周围没有 ""
,但总是返回无效。
好吧,把它整理好了,我不知道它是以字符串形式返回的。虽然,我有点失望,因为我被撕裂了,我没有达到所有具有多年经验的人的“高额”标准。
答案 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")