Чтение пользовательского ввода в Python 2.4, помещение его в очередь
Итак, я пишу программу дифференциального калькулятора на Python 2.4 (я знаю, что она устарела, это школьное задание, а наш системный администратор не верит в обновление), которая принимает пользовательский ввод в префиксной нотации (то есть input = [+ - * x^2 2x 3x^2 x], что эквивалентно x^2 + 2x - 3x^2 * x) и вычисляет дифференциал.
Я пытаюсь найти способ прочитать пользовательский ввод командной строки и поместить математические операторы в очередь, но я не могу понять это! очевидно, команды X=input() и x=raw_input() не работают, и я могу найти буквально 0 документации о том, как читать пользовательский ввод в python 2.4. У меня вопрос: как мне прочитать пользовательский ввод в 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
Что не работает (я получаю сообщения об ошибках типа "печать: команда не найдена" и "формула: команда не найдена")
Любая помощь будет оценена
2 ответа
@miku уже ответил, что это ваша первоначальная проблема, но я подумал, что добавлю еще.
Строка "sh-bang" требуется сценариями командной строки, поэтому для интерпретации языка используется соответствующий процесс, будь то bash, perl, python и т. Д. Так что в вашем случае вам понадобится: /usr/bin/env python
При этом, как только вы запустите его, вы столкнетесь с несколькими другими проблемами. raw_input
следует использовать вместо input
потому что это вернет вам необработанную строку. input
собирается попытаться оценить вашу строку, что, скорее всего, вызовет у вас проблемы.
Возможно, вам придется пересмотреть синтаксис Python немного больше. Назначения в Python не требуют, чтобы вы объявили тип переменной: int a = 1
, Это динамично, и компилятор справится с этим за вас.
Кроме того, вам нужно будет пересмотреть, как сделать ваш if elif else
тесты, чтобы правильно обрабатывать случаи вашей формулы. Это тоже не будет работать, делая все это на одной строке с несколькими параметрами.
Если вы работаете на платформе unix-ish, установите
#!/usr/bin/env python
в верхней части вашей программы. Оболочка, похоже, не распознает, что вы запускаете скрипт Python.