Command-line Input (parameters)
本问题已经有最佳答案,请猛点这里访问。
我对命令行输入的工作方式非常困惑,因此在实践中,我试图将下面的程序取下来并生成相同的信息,但仅仅通过使用命令行输入,唯一的问题是我不知道从哪里开始
1 2 3 4 5 6 7 8 9 10 11 12 13 | def main(): x = (input("Give me a boolean:").lower() == 'true') y = str(input("Give me a string:")) z = int(input("Give me a number:")) if x == True: print (y) print (""",y,""",sep="") else: print (z*2) main() |
见http://docs.python.org/2/library/sys.html中
1 2 3 4 | import sys x = sys.argv[1].lower() == 'true' y = sys.argv[2] z = int(sys.argv[3]) |
…或者,要以正确的方式进行操作,请使用argparse:http://docs.python.org/dev/library/argparse.html
我同意查尔斯使用argparse。我只是想补充一下,你的主要方法应该是这样的:
1 2 3 4 5 6 7 8 9 10 11 12 | def start(var): # ... your program start... def parser(): # use argparse here # ... return var if __name__ =="__main__": var = parser() start(var) # ... |
你可以从这个问题的答案中看出原因。
为了发现没有阅读文档的情况下事情是如何工作的,交互式解释器是最好的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | >>> input("something:") something: true Traceback (most recent call last): File"<input>", line 1, in <module> File"<string>", line 1, in <module> NameError: name 'true' is not defined >>> input("something:") something: True True >>> input("something:") something: 12 12 >>> input("something:") something: 12.4 12.4 >>> type(input("something:")) something: 14.3 <type 'float'> >>> type(input("something:")) something: 14 <type 'int'> |
你看,它评估用户写的是什么样的python值。