小于运算符对我来说不正常:
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左右,但总是返回无效.
好吧,让它排序,我不知道它作为一个字符串返回.虽然,我有点失望,因为我被撕裂了,我没有达到所有具有多年经验的人的"高额"标准.
您正在按字典顺序进行比较.您应该将输入转换为数字,并将其与数字进行比较:
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比隐含更好".