0

所以我在 python 2.4 中编写了一个微分计算器程序(我知道它已经过时了,这是一个学校作业,我们的系统管理员不相信更新任何东西),它接受前缀符号的用户输入(即 input = [+ - * x^2 2x 3x^2 x],等价于 x^2 + 2x - 3x^2 * x) 并计算微分。

我正在尝试找到一种方法来读取命令行用户输入并将数学运算符放入队列中,但我无法弄清楚!显然, X=input() 和 x=raw_input() 命令不起作用,我可以找到关于如何在 python 2.4 中读取用户输入的字面上的 0 文档。我的问题是:如何在 python 2.4 中读取用户输入,以及如何将该输入放入队列中?这是我正在尝试的:

1 formula = input("Enter Formula:")
2 
3 operatorQueue=[]
4 
5 int i = len(formula)
6 
7 for x in formula:
8     if formula[x] == '*', '+', '-', '/':
9         operatorQueue.append(formula[x])
0 
11 print "operator A:", operatorQueue.pop(0)
12 

哪个不起作用(我不断收到诸如“打印:未找到命令”和“公式:未找到命令”之类的错误)

任何帮助,将不胜感激

4

2 回答 2

1

如果你在一个 unix-ish 平台上,放一个

#!/usr/bin/env python 

你的程序之上。shell 似乎无法识别您正在运行 python 脚本。

于 2012-04-08T00:03:43.037 回答
1

@miku 已经回答了这是您最初的问题,但我想我会添加更多。

命令行脚本需要“sh-bang”行,以便使用正确的进程来解释语言,无论是 bash、perl、python 等。所以在你的情况下,你需要:/usr/bin/env python

话虽如此,一旦你让它运行起来,你就会遇到其他一些问题。raw_input应该使用而不是input,因为它会给你一个原始字符串。input将尝试评估您的字符串,这很可能会给您带来问题。

您可能需要更多地查看 python 语法。python中的赋值不需要你声明变量类型:int a = 1。它是动态的,编译器将为您处理它。

此外,您将需要查看如何进行if elif else测试以正确处理公式的情况。这也不会在一条线上使用多个参数完成所有工作。

于 2012-04-08T00:13:48.183 回答