命令行输入(参数)

时间:2014-02-26 20:04:55

标签: python input command-line output

我对命令行输入如何工作非常困惑,所以对于练习我试图在下面采用以下程序并产生相同的信息,但只是通过使用命令行输入,唯一的问题是我不知道从哪里开始

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()

3 个答案:

答案 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值。