【发布时间】:2019-05-20 17:03:07
【问题描述】:
根据上一个问题Else statement executing even the IF statement is TRUE 提供的建议是检查缩进。我的代码中的缩进似乎是正确的。似乎是什么问题?
根据https://www.tutorialspoint.com/python/python_if_else.htm
else 语句可以与 if 语句结合使用。另一个 语句包含在条件条件下执行的代码块 if 语句中的表达式解析为 0 或 FALSE 值。
据我了解,如果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
【问题讨论】:
-
'else' 指的是最后一个
if,所以如果你提供了一个 IP 但没有 URL 则执行 else-part。
标签: python python-3.x windows argparse