我需要编写一个完整的程序来获取三个数据然后处理它们。这三条信息是布尔值,字符串和整数。程序的逻辑是这样的:如果布尔值为True,则打印出两次字符串,一次使用双引号,一次不打印 - 否则打印两次数字。哪个我可以做得很好,但后来我必须编写相同的程序,但这次使用命令行输入,下面的程序是我到目前为止,但我一直得到一个命令没有找到错误。我觉得我的“为我在范围“是错误
import sys
def main():
x = sys.argv[0].lower() == 'true'
y = str(sys.argv[1])
z = int(sys.argv[2])
for i in range(0,len(sys.argv),1):
print(" ",i,":",sys.argv[i])
return 0;
答案 0 :(得分:1)
“未找到命令”是文件不在$ PATH中或从未变为可执行文件时的shell响应。首先确保它可以用
执行chmod +x myfile.py
第二个确保它在你的路径
which myfile.py
如果它不在您的路径中,您需要使用显式路径执行它,例如'./myfile.py'
如果它不可执行且您没有将其更改为可执行文件,则需要使用
python [full path or .]/myfile.py
在你的评论中,你说你用“python3”双重检查执行它,它是对你的系统的正确调用。
我几乎忘了添加脚本中的第一行需要
#!/usr/bin/python
或系统中的任何python指向
答案 1 :(得分:0)
def main():
x = sys.argv[1].lower() == 'true'
y = str(sys.argv[2])
z = int(sys.argv[3])
if x:
print "'{}'".format(y)
print '"{}"'.format(y)
else:
print 2*z
return 0;
if __name__ == '__main__':
main()
将此保存为myfile.py
然后从shell运行:chmod +x myfile.py && python myfile.py