else: IndentationError: unexpected unindent
else: IndentationError: unexpected unindent
有人可以解释为什么在我尝试进一步处理 if else 循环时出现 IndentationError: unexpected unindent 吗?
基本上我正在做一个端口扫描器项目,我需要在这个用户输入中获取一些用户输入,我将指定需要扫描多少个端口。
我的计划是进一步研究 if 命令,所以如果我没有得到 1 的响应,则意味着下一个。但是好像不行
怎么了?
input = input("1 or 2")
if input == '1':
try:
for port in range(1,65535):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket.setdefaulttimeout(1)
result = s.connect_ex((target,port))
if result ==0:
print("Port {} is open".format(port))
s.close()
else:
print("do not work")
except KeyboardInterrupt:
print("\n ")
sys.exit()
except socket.gaierror:
print("\n ")
sys.exit()
except socket.error:
print("\")
sys.exit()
我不得不说你在 except 语句之间有一个 else,将它与 try 分开......对吧?
也许试试这样的东西
input = input("1 or 2")
if input == '1':
try:
for port in range(1,65535):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket.setdefaulttimeout(1)
result = s.connect_ex((target,port))
if result ==0:
print("Port {} is open".format(port))
s.close()
except KeyboardInterrupt:
print("\n ")
sys.exit()
except socket.gaierror:
print("\n ")
sys.exit()
except socket.error:
print("\n ")
sys.exit()
else:
print("doesn’t work")
您需要缩进 else
子句以与 if result == 0
行保持一致。一旦你这样做,它应该工作。您的代码应如下所示:
userInput = input("1 or 2")
if userInput == '1':
try:
for port in range(1,65535):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket.setdefaulttimeout(1)
result = s.connect_ex((target,port))
if result ==0:
print("Port {} is open".format(port))
else:
print("do not work")
s.close()
except KeyboardInterrupt:
print("\n ")
sys.exit()
except socket.gaierror:
print("\n ")
sys.exit()
except socket.error:
print("\n")
sys.exit()
有人可以解释为什么在我尝试进一步处理 if else 循环时出现 IndentationError: unexpected unindent 吗?
基本上我正在做一个端口扫描器项目,我需要在这个用户输入中获取一些用户输入,我将指定需要扫描多少个端口。 我的计划是进一步研究 if 命令,所以如果我没有得到 1 的响应,则意味着下一个。但是好像不行
怎么了?
input = input("1 or 2")
if input == '1':
try:
for port in range(1,65535):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket.setdefaulttimeout(1)
result = s.connect_ex((target,port))
if result ==0:
print("Port {} is open".format(port))
s.close()
else:
print("do not work")
except KeyboardInterrupt:
print("\n ")
sys.exit()
except socket.gaierror:
print("\n ")
sys.exit()
except socket.error:
print("\")
sys.exit()
我不得不说你在 except 语句之间有一个 else,将它与 try 分开......对吧? 也许试试这样的东西
input = input("1 or 2")
if input == '1':
try:
for port in range(1,65535):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket.setdefaulttimeout(1)
result = s.connect_ex((target,port))
if result ==0:
print("Port {} is open".format(port))
s.close()
except KeyboardInterrupt:
print("\n ")
sys.exit()
except socket.gaierror:
print("\n ")
sys.exit()
except socket.error:
print("\n ")
sys.exit()
else:
print("doesn’t work")
您需要缩进 else
子句以与 if result == 0
行保持一致。一旦你这样做,它应该工作。您的代码应如下所示:
userInput = input("1 or 2")
if userInput == '1':
try:
for port in range(1,65535):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket.setdefaulttimeout(1)
result = s.connect_ex((target,port))
if result ==0:
print("Port {} is open".format(port))
else:
print("do not work")
s.close()
except KeyboardInterrupt:
print("\n ")
sys.exit()
except socket.gaierror:
print("\n ")
sys.exit()
except socket.error:
print("\n")
sys.exit()