Sab*_*ina 2 python windows argparse python-3.x
根据之前的问题,即使IF语句执行的Else语句为TRUE,提供的建议是检查缩进.在我的代码中,缩进似乎是正确的.什么似乎是问题?
根据https://www.tutorialspoint.com/python/python_if_else.htm
else语句可以与if语句结合使用.else语句包含if语句中的条件表达式解析为0或FALSE值时执行的代码块.
根据我的理解,else如果if语句正确/为真,则不应执行.
但是,在这段代码中... 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>
Run Code Online (Sandbox Code Playgroud)
这是代码.
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")
Run Code Online (Sandbox Code Playgroud)
请告诉我这里出了什么问题.No Argument Provided不应该在那里.
C:\Python>python myCode.py -i 8.8.8.8
~ IP Address is 8.8.8.8
No Argument Provided
Run Code Online (Sandbox Code Playgroud)
你可能需要使用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")
Run Code Online (Sandbox Code Playgroud)