2012-06-11 3 views
1

Итак, у меня есть функция, которую я создал под названием DrawGraph. Эта одна из функций - в значительной степени моя программа.Как использовать функцию с вводом?

DrawGraph(x, y, xv, yv, s) 

В начале программы мне бы хотелось ввести эти функции. И введите конкретные числа, x, y, xv и т. Д.

поэтому я могу вводить разные числа каждый раз, когда я запускал программу.

Что является самым простым способом или даже лучшим способом сделать это? Я не могу ожидать, что это будет слишком сложно.

То, что я пытался до сих пор:

DrawGraph(x, y, xv, yv, s) = input() 

DrawGraph(x, y, xv, yv, s) = input(x, y, xv, yv, s) 

input(x, y, xv, yv, s) 

...... ни один из них не работал .......

просто хочу, чтобы бросить там. В конце программы, если у меня нет входа, но только

DrawGraph (5, 5, 10, 10, 60)

это работает грандиозно. Когда я начать использовать вход это действительно испортится

+0

ли все аргументы плавает? – Eric

ответ

2

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

x = input("Enter x:") 
y = input("Enter y:") 
xv = input("Enter xv:") 
yv = input("Enter yv:") 
s = input("Enter s:") 

DrawGraph(x, y, xv, yv, s) 

Это позволит получить значения от пользователя, а затем вызвать функцию с этими значениями.

+0

Обратите внимание, что отпечатки не нужны. Ввод может принимать приглашение пользователя для сообщения. Я обновил ваш фрагмент, чтобы отразить это. – Finglas

+0

Ha! Duh. Спасибо, не делали никаких пользовательских ввода с python в годах. –

+0

это очень, как я хотел бы это сделать. К сожалению, я тоже ошибаюсь. Возможно, это ошибка в другом месте моего скрипта. TypeError: Невозможно преобразовать объект «float» в str неявно –

2
x, y, xv, yv, s = input() 

вход должен быть в форме:

1,2,3,4,5

или

x = input() 
y = input() 
xv = input() 
yv = input() 
s = input() 

вход для этого будет в форме:

 
1 
2 
3 
4 
5

В любом случае вам необходимо передать переменные в вашу функцию.

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

x = input("Give me x:") 
+0

способ нет. 1 = ValueError: слишком много значений для распаковки (ожидается 5) метод №. 2, похоже, не имеет никаких ошибок, но окно черепахи python не отвечает. То же самое происходит со всеми другими правильными ответами. Возможно, проблема не в скрипте. –

4

Вы можете просто сделать:

input() 

И типа:

DrawGraph(0, 1, 2, 3, 4) 

input принимает любое выражение python и оценивает его. Это может стать дырой в безопасности.


Лучше было бы использовать raw_input():

args = map(float, raw_input().split()) 
DrawGraph(*args) 

Этот код принимает входные данные, превращает его в список, а затем превращает каждый элемент в поплавок.

+0

python turtle не отвечает, когда я попробую ваше предложение –

+1

Какой? Что такое «черепаха питона»? – Eric

+0

работает, если вы измените float на int? – Eric

1

Существует хорошее переполнение стека вопрос о входе пользователя в питоне here

Вы можете принять значение параметров КМДА линии, или использовать raw_input для их получения.

0
args = [int(i) for i in raw_input().split()] 

DrawGraph(*args) 

Для Python 3, вы бы просто заменить raw_input() с input(). Я уверен, что есть несколько более простой способ (помимо потенциально опасного использования старой версии input(), как упоминалось в ответе Эрика), но я немного поспешил в данный момент и не успел подумать это слишком много.

0
def do_draw_graph(): 
    x = int(raw_input("Value for x? ")) 
    y = int(raw_input("Value for y? ")) 
    xv = int(raw_input("Value for xv? ")) 
    yv = int(raw_input("Value for yv? ")) 
    s = int(raw_input("Value for s? ")) 
    DrawGraph(x, y, xv, yv, s) 

Работы при использовании turtle модуля в IDLE

0
raw_input() is renamed to input() in Python3 

    x=int(input("enter x")) 
    y=int(input("enter y")) 
    xv=int(input("enter xv")) 
    yv=int(input("enter yv")) 
    s=int(input("enter s")) 
    DrawGraph(x,y,xv,yv,s) 

it depends on what type of number are the inputs. if they'r decimals like 1.2 instead of int use float 
Смежные вопросы