这是我的Python
hello.py
脚本:
def hello(a,b):
print "hello and that's your sum:"
sum=a+b
print sum
import sys
if __name__ == "__main__":
hello(sys.argv[2])
问题是无法从windows命令行提示符下运行,我用的是这个命令:
C:\Python27>hello 1 1
但是不幸的是它不起作用,有人可以帮忙吗?
import sys
超出 hello 功能。'
的字符串文字应该被转义或者应该被 "
包围。python hello.py <some-number> <some-number>
调用了程序?import sys
def hello(a,b):
print "hello and that's your sum:", a + b
if __name__ == "__main__":
a = int(sys.argv[1])
b = int(sys.argv[2])
hello(a, b)
我发现这个线程正在寻找有关处理参数的信息; 这个简单的指南太酷了:
import argparse
parser = argparse.ArgumentParser(description='Script so useful.')
parser.add_argument("--opt1", type=int, default=1)
parser.add_argument("--opt2")
args = parser.parse_args()
opt1_value = args.opt1
opt2_value = args.opt2
运行如下:
python myScript.py --opt2 = 'hi'
以下是之前所有答案的总结:
代码应该如下所示:
import sys
def hello(a, b):
print "hello and that's your sum:"
sum = a+b
print sum
if __name__== "__main__":
hello(int(sys.argv[1]), int(sys.argv[2]))
然后使用以下命令运行代码:
python hello.py 1 1
要从命令行执行程序,您必须调用 python 解释器,如下所示:
C:\Python27>python hello.py 1 1
如果您的代码驻留在另一个目录中,则必须在 PATH 环境变量中设置 python 二进制路径,才能运行它。您可以在此处找到详细说明。
您的压痕已损坏。这应该可以解决它:
import sys
def hello(a,b):
print 'hello and thats your sum:'
sum=a+b
print sum
if __name__ == "__main__":
hello(sys.argv[1], sys.argv[2])
显然,如果您将
if __name__
语句inside 放在函数中,则只有在运行该函数时才会对其进行求值。问题是:上述语句的要点是首先运行该函数。
import sys
def hello(a, b):
print 'hello and that\'s your sum: {0}'.format(a + b)
if __name__ == '__main__':
hello(int(sys.argv[1]), int(sys.argv[2]))
此外,请参阅@thibauts关于如何调用python脚本的回答。
代码中存在多个错误。
由于您尚未为任何函数参数定义任何默认值,因此有必要在调用函数时传递两个参数 --> hello(sys.argv[2], sys.argv[2])
import sys
def hello(a,b):
print ("hello and that's your sum:")
sum=float(a)+float(b)
print (sum)
if __name__ == "__main__":
hello(sys.argv[1], sys.argv[2])
此外,使用“C:\Python27>hello 1 1”运行代码看起来不错,但您必须确保该文件位于 Python 知道的目录之一(PATH 环境变量)。因此,请使用完整路径来验证代码。 比如:
C:\Python34>python C:\Users\pranayk\Desktop\hello.py 1 1
只需修复文件 .py 关联,您就可以运行带有参数的脚本,而无需调用 python.exe