根据之前的问题Else statement executing even the IF statement is TRUE提供的建议是检查缩进。缩进在我的代码中似乎是正确的。似乎是什么问题?
根据 https://www.tutorialspoint.com/python/python_if_else.htm
An else statement can be combined with an if statement. An else statement contains the block of code that executes if the conditional expression in the if statement resolves to 0 or a FALSE value.
根据我的理解,如果 if
语句正确/为真,则不应执行 else
。
但是,在这段代码中...else
语句仍然会执行。请参阅 python myCode.py -i 8.8.8.8
C:\Python>python myCode.py
No Argument Provided
C:\Python>python myCode.py -h
usage: myCode.py [-h] [-u URL] [-i IP]
optional arguments:
-h, --help show this help message and exit
-u URL, --url URL Uniform Resource Locator
-i IP, --ip IP IP Address
C:\Python>python myCode.py -u google.com
~ URL is google.com
C:\Python>python myCode.py -i 8.8.8.8
~ IP Address is 8.8.8.8
No Argument Provided
C:\Python>
这是代码。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-u', '--url',
help='Uniform Resource Locator' )
parser.add_argument('-i', '--ip',
help='IP Address' )
args = parser.parse_args()
if args.ip:
print("~ IP Address is " + args.ip)
if args.url:
print("~ URL is " + args.url)
else:
print("No Argument Provided")
请告诉我这里出了什么问题。 No Argument Provided
不应该存在。
C:\Python>python myCode.py -i 8.8.8.8
~ IP Address is 8.8.8.8
No Argument Provided
最佳答案
您可能需要使用 elif
。您的案例中的 else
已执行,因为 args.url
为空。
例如:
if args.ip:
print("~ IP Address is " + args.ip)
elif args.url:
print("~ URL is " + args.url)
else:
print("No Argument Provided")
关于 python 3 : `else` statement get executed even `if` statement was true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53864192/