Read two variables in a single line with Python [duplicate]
I am familiar with the input() function, to read a single variable from user input. Is there a similar easy way to read two variables?
I’m looking for the equivalent of:
One way I am able to achieve this is to use raw_input() and then split what was entered. Is there a more elegant way?
This is not for live use. Just for learning..
9 Answers 9
No, the usual way is raw_input().split()
In your case you might use map(int, raw_input().split()) if you want them to be integers rather than strings
Don’t use input() for that. Consider what happens if the user enters
You can also read from sys.stdin
I am new at this stuff as well. Did a bit of research from the python.org website and a bit of hacking to get this to work. The raw_input function is back again, changed from input. This is what I came up with:
Granted, the code is not as elegant as the one-liners using C’s scanf or C++’s cin. The Python code looks closer to Java (which employs an entirely different mechanism from C, C++ or Python) such that each variable needs to be dealt with separately.
In Python, the raw_input function gets characters off the console and concatenates them into a single str as its output. When just one variable is found on the left-hand-side of the assignment operator, the split function breaks this str into a list of str values .
In our case, one where we expect two variables, we can get values into them using a comma-separated list for their identifiers. str values then get assigned into the variables listed. If we want to do arithmetic with these values, we need to convert them into the numeric int (or float) data type using Python’s built-in int or float function.
I know this posting is a reply to a very old posting and probably the knowledge has been out there as "common knowledge" for some time. However, I would have appreciated a posting such as this one rather than my having to spend a few hours of searching and hacking until I came up with what I felt was the most elegant solution that can be presented in a CS1 classroom.
Считайте две переменные в одной строке с помощью Python
Я знаком с функцией input() для чтения одной переменной из пользовательского ввода. Есть ли аналогичный простой способ чтения двух переменных?
Я ищу эквивалент:
Один из способов, которым я могу добиться этого, — использовать raw_input() , а затем split что было введено. Есть ли более элегантный способ?
Это не для живого использования. Просто для обучения..
9 ответы
Нет, обычный способ raw_input().split()
В вашем случае вы можете использовать map(int, raw_input().split()) если вы хотите, чтобы они были целыми числами, а не строками
Не использовать input() для этого. Рассмотрим, что произойдет, если пользователь введет
ответ дан 19 окт ’09, 12:10

Обратите внимание, что начиная с Python 3.0, raw_input был переименован в input . (И чтобы получить исходное поведение input , Используйте eval(input) .) — Stephan202
. это должно быть «применить eval к выходу input «. — Stephan202
Да, очевидное поведение в 3 намного лучше, но я бы хотел, чтобы в 2.6 было несколько предупреждений об этих изменениях. Я думаю, мне нужно изучить руководство по обновлению — Джон Ла Рой
нет, это должно быть int(input() , если вы это сделаете eval(input()) в python3 вы получаете очень опасный бэкдор, потому что пользователь сможет выполнить любой оператор python (даже os.system) с вашими правами пользователя. — Даллолиогм
@dialloliogn: прочитай еще раз. я сделал Генеральная замечание о том, как получить Python 2 input поведение в Python 3. — Stephan202
Вы также можете прочитать из sys.stdin
ответ дан 19 окт ’09, 19:10
Я тоже новичок в этом деле. Провел небольшое исследование на веб-сайте python.org и немного взломал, чтобы заставить это работать. То сырой ввод функция снова вернулась, изменена с вход. Вот что я придумал:
Конечно, код не такой элегантный, как однострочники, использующие C зсапЕ или C ++ CIN. Код Python выглядит ближе к Java (в котором используется совершенно другой механизм, чем в C, C++ или Python), так что с каждой переменной нужно работать отдельно.
В Python сырой ввод функция получает символы с консоли и объединяет их в один строка как его выход. Когда в левой части оператора присваивания находится только одна переменная, раскол функция ломает это строка в список of строка значения .
В нашем случае, когда мы ожидаем две переменные, мы можем получить в них значения, используя список их идентификаторов, разделенных запятыми. строка затем значения присваиваются перечисленным переменным. Если мы хотим произвести арифметические действия с этими значениями, нам нужно преобразовать их в числовые Int (или плавать) тип данных с использованием встроенного в Python Int or плавать функции.
Я знаю, что это сообщение является ответом на очень старое сообщение, и, вероятно, это знание уже некоторое время является «общеизвестным». Тем не менее, я был бы признателен за публикацию, подобную этой, вместо того, чтобы тратить несколько часов на поиск и взлом, пока я не придумал то, что я чувствовал, было самым элегантным решением, которое может быть представлено в классе CS1.
Как ввести несколько значений от пользователя в одной строке в Python?

Michael Zippo
// Считывает два значения в одной строке
scanf ( «%d%d» , & x, & y)
Одним из решений является использование raw_input() дважды.
x, y = raw_input (), raw_input ()
Другое решение — использовать split()
x, y = raw_input (). split()
Обратите внимание, что нам не нужно явно укажите split (' '), потому что split() по умолчанию использует любые пробельные символы в качестве разделителя.
Обратите внимание, что в приведенном выше коде Python x и y будут строками. Мы можем преобразовать их в int, используя другую строку
# Считывает два числа из ввода и приводит их к типу int, используя
# понимание списка
x, y = [ int (x) для x в raw_input (). split ()]
# Считывает два числа из ввода и выводит их в int с помощью
# функция сопоставления
x, y = map ( int , raw_input ().split ())
Обратите внимание, что в Python 3 мы используем input() вместо raw_input().
Эту статью предоставил Абхишек Шукла . Пожалуйста, оставляйте комментарии, если вы обнаружите что-то не так или если вы хотите поделиться дополнительной информацией по обсуждаемой теме
Русские Блоги
Как ввести несколько значений в одну строку в Python
Python 2 raw_input () и Python 3 input () получают всю строку строк.
Затем введите несколько значений для одной строки, например:
Входные данные — это строка, содержащая три целых числа, разделенных пробелами, а именно a, b, c.
Интеллектуальная рекомендация
Меч относится к предложению + 43: количество N сиша + Java
Оригинальное название: бросить кубики на землю, все точки кости сталкиваются с точкой точки кости. Введите n, напечатали вероятность всех возможных значений. (6 сторон каждой кости, точки от 1 до 6) Р.
![]()
Введение в Python 4
функция ввода Использование функции Функция input () является функцией ввода. Функция input () — это функция ввода. Когда вы пишете вопрос в скобках функции, функция input () будет отображать вопрос в.
Основные операции в R 01
Повторите основную операцию секретной книги ниндзя языка R учителя Се Иихуэй.
Мастерство, создание американской легенды очистки воды
Мастера — это не только технические специалисты и квалифицированные мастера, которые могут решить некоторые практические проблемы в производстве и жизни, но также авангарды, которые могут руководить п.
курсы памяти Лу Feifei (а, понимать память понимания мозга)
Понимание памяти, что память? Понимание памяти, что память? 1 Понимание мозга 2 Что такое память Функция 3 Память 3.1 общие воспоминания путь 3.2 Факторы, влияющие на память 4 запоминающий материал Че.