我对命令行输入如何工作非常困惑,所以对于练习我试图在下面采用以下程序并产生相同的信息,但只是通过使用命令行输入,唯一的问题是我不知道从哪里开始
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()
答案 0 :(得分:2)
请参阅http://docs.python.org/2/library/sys.html
中sys.argv
的说明
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
答案 1 :(得分:1)
我同意Charles使用argparse。我只是想补充一点,你的主要方法应该是这样的:
def start(var):
# ... your program start...
def parser():
# use argparse here
# ...
return var
if __name__ == "__main__":
var = parser()
start(var)
# ...
您可以在this question
的答案中阅读原因答案 2 :(得分:0)
为了在不阅读文档的情况下发现事物如何工作,交互式解释器是最好的。
>>> 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值。