将程序与参数相结合,不带参数

时间:2015-11-25 06:12:11

标签: python

我想要一个Python程序,它必须要求用户将值作为参数。 如果用户只是(没有参数)运行它必须打印的程序

$ python prog.py

Hello

如果用户将参数作为欢迎提供,则必须打印欢迎。

$ python prog.py Welcome

Welcome

4 个答案:

答案 0 :(得分:3)

sys.argv包含运行时参数列表,脚本文件名为第一个参数:

import sys

if len(sys.argv) > 1:
    print(" ".join(sys.argv[1:]))
else:
    print("Hello")

$ python script.py foo bar

foo bar

$ python script.py
Hello

答案 1 :(得分:2)

import sys

if len(sys.argv) > 1:
    print(' '.join(sys.argv[1:]))
else:
    print('Hello')

<强>输出:

➜  python stackoverflow.py
Hello
➜  python stackoverflow.py Welcome to Miami!
Welcome to Miami!

答案 2 :(得分:2)

最短路:

import sys
print(sys.argv[1] if len(sys.argv) > 1 else 'Welcome')

如果没有参数,这将打印Welcome,如果有参数,则打印第一个参数。

演示:

kevin@Arch ~> python test.py 
Welcome
kevin@Arch ~> python test.py Hey
Hey
kevin@Arch ~> python test.py Hey there
Hey

如果您想在参数为Hey there时打印Hey there,只需使用:

import sys
print(' '.join(sys.argv[1:]) if len(sys.argv) > 1 else 'Welcome')

以下是sys.argv的详细信息。

答案 3 :(得分:1)

您可以测试参数列表的大小,例如:

import sys

if len(sys.argv) > 1:
    print(sys.argv[1])
else:
    print("Hello")

或使用try:块:

try:
    print(sys.argv[1])
except IndexError:
    print("Hello")