Получение ввода с клавиатуры в Octave с использованием функции input () - PullRequest
1 голос
/ 20 мая 2011

В настоящее время я использую Octave в Windows через Xoctave, и у меня возникла следующая проблема.

Я попытался запустить скрипт, который начинается с

activity = input("What would you like to do? ");

Когда я вызывал этот скрипт в консоли, он печатает

What would you like to do?

Когда я набираю номер и нажимаю ввод, он возвращает:

What would you like to do? 1

error: `What' undefined near line 4 column 1

>> 

Создается впечатление, что консоль пытается проанализировать выходные данные предыдущей команды (т. Е. Пытается проанализировать всю строку, включая текст приглашения).

Чтобы получить более четкое представление о том, что я пытаюсь сказать, просто сохраните сценарий, содержащий только строку:

m = input('Enter m: ');

затем попробуйте запустить этот скрипт в Xoctave. Я верю, что вы тоже получите ту же ошибку.

Я полагаю, что это связано с изменением поведения синтаксического анализа по умолчанию, но я не уверен, как.

@ Bart_Kiers
Я думаю, что вы не поняли = \ Когда я делаю то, что вы только что прописали, он хранит: активность = что бы вы хотели сделать? 1 Я хочу просто сохранить активность = 1 единственный способ, который я нашел, это сделать: активность1 = вход («выбор 1 или 0»); activity2 = strrep (активность, «Выбрать 1 или 0», «»); активность = str2num (деятельности2)

На что он выведет: активность = 1

Чтобы прояснить проблему, она создает аналогичную, но значительно более неприятную проблему, используя функцию меню. если я сделаю это:

number=menu("What's your favorite number?",1,2,3,4,5); 

подсказывает:

[ 1] 1
[ 2] 2
[ 3] 3
[ 4] 4
[ 5] 5

pick a number, any number:  

Я набираю 3 и нажимаю ввод, и он возвращает: «ошибка: ввод недопустим или выходит за пределы диапазона», потому что он пытается проанализировать всю строку, включая приглашение! = [помогите!

Также я использую Xoctave для взаимодействия с командной строкой Octave в Windows. Не уверен, поможет ли это.

Спасибо!

1 Ответ

1 голос
/ 12 июля 2011

Я не могу повторить вашу ошибку, но вы можете попробовать:

m = input("Enter m: \n");

Новая строка не будет работать с меню.

...