Два значения из одного входа в python?

Это несколько простой вопрос, и я не могу его спросить здесь, но я не могу найти ответ в другом месте: возможно ли получить несколько значений от пользователя в одной строке Python?

Например, в CI можно сделать что-то вроде этого: scanf("%d %d", &var1, &var2) . Однако я не могу понять, что такое эквивалент Python. Я полагал, что это будет просто что-то вроде var1, var2 = input("Enter two numbers here: ") , но это не работает, и я не жалуюсь, потому что это не будет иметь большого смысла, если это произойдет.

  • Ввод клавиатуры с тайм-аутом в Python
  • Как читать ввод пользователя до EOF?
  • «UnboundLocalError: локальная переменная« input », на которую ссылаются перед назначением»
  • Различия между командами ввода в Python 2.x и 3.x
  • Удаление определенной строки в файле (python)
  • Изменить символ новой строки .readline () ищет
  • Кто-нибудь знает хороший способ сделать это элегантно и лаконично?

  • Как вы можете напечатать имя переменной в python?
  • Как назначить адрес памяти для переменной в Python?
  • Сохранять постоянные переменные в памяти между сценариями Python
  • Могу ли я подавить переменное расширение в документации Sphinx?
  • Является ли переменная именем, значением или местом памяти?
  • Python: как я могу импортировать все переменные?
  • 10 Solutions collect form web for “Два значения из одного входа в python?”

    Путь Python к карте

     printf("Enter two numbers here: "); scanf("%d %d", &var1, &var2) 

    было бы

     var1, var2 = raw_input("Enter two numbers here: ").split() 

    Обратите внимание, что нам не нужно явно указывать split(' ') потому что split() по умолчанию использует любые символы пробелов в качестве разделителя. Это означает, что если мы просто назовем split() тогда пользователь мог бы отделить числа, используя вкладки, если он действительно захотел, а также пробелы.

    Python имеет динамическую типизацию, поэтому нет необходимости указывать %d . Однако, если вы запустили выше, то var1 и var2 будут обе строки. Вы можете преобразовать их в int с помощью другой строки

     var1, var2 = [int(var1), int(var2)] 

    Или вы можете использовать понимание списка

     var1, var2 = [int(x) for x in [var1, var2]] 

    Подводя итог, вы могли бы сделать все это с помощью одного лайнера:

     var1, var2 = [int(x) for x in raw_input("Enter two numbers here: ").split()] 

    В Python 2.* input позволяет пользователю вводить любое выражение, например кортеж:

     >>> a, b = input('Two numbers please (with a comma in between): ') Two numbers please (with a comma in between): 23, 45 >>> print a, b 23 45 

    В Python 3.* input raw_input выглядит как 2.* 's raw_input , возвращая вам строку, которая только что набрала пользователь (а не eval ее как 2.* используемую для input ), поэтому вам придется .split и / или eval , & c, но вы также будете БОЛЬШЕ больше контролировать все это.

    Вы не можете сделать это так, как мне кажется, но питонический способ сделать это будет (если ваши «входы» имеют промежутки между ними):

     raw_answer = raw_input() answers = raw_answer.split(' ') # list of 'answers' 

    Поэтому вы можете переписать свою попытку:

     var1, var2 = raw_input("enter two numbers:").split(' ') 

    Обратите внимание, что это несколько менее гибко, чем использование «первого» решения (например, если вы добавите пробел в конце, это уже сломается).

    Также имейте в виду, что var1 и var2 все равно будут строками с этим методом, если не будут переданы в int.

    Весь вход будет через строку. Это зависит от вас, чтобы обработать эту строку после ее получения. Если это не так, вы используете метод eval (input ()), но это не рекомендуется для большинства ситуаций.

     input_string = raw_input("Enter 2 numbers here: ") a, b = split_string_into_numbers(input_string) do_stuff(a, b) 

    Если вам нужно взять два целых числа, скажите a, b в python, вы можете использовать функцию карты.
    Предположим, что вход есть,

     1
     5 3
     1 2 3 4 5
    

    где 1 – тестовый случай, 5 – количество значений, а 3 – значение задачи, а в следующей строке – 5 значений, мы можем взять такой ввод, используя этот метод в версии PYTH 2.x.

     testCases=int(raw_input()) number, taskValue = map(int, raw_input().split()) array = map(int, raw_input().split()) 

    Вы можете заменить 'int' на map () другим необходимым типом данных.

    Вы должны использовать метод split() который разбивает вход на два разных входа. Все, что вы переходите в раскол, просматривается, и вход от него отделяется. В большинстве случаев это пробел.

    Например, вы вводите ввод 23 24 25 . Вы ожидаете 3 разных входа, таких как

     num1 = 23 num2 = 24 num3 = 25 

    Итак, в Python вы можете сделать

     num1,num2,num3 = input().split(" ") 

    Проверьте эту удобную функцию:

     def gets(*types): return tuple([types[i](val) for i, val in enumerate(raw_input().split(' '))]) # usage: a, b, c = gets(int, float, str) 

    Решение, которое я нашел, следующее:


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

    value = input("Enter 2 numbers (separated by a comma): ")

    Затем строка разделяется: n принимает первое значение, а m – второе

    n,m = value.split(',')

    Наконец, чтобы использовать их как целые числа, их необходимо преобразовать

    n, m = int(n), int(m)


    Самый простой способ, который я нашел для себя, – использовать функцию split с входом. Как у вас есть две переменные a, b

     a,b=input("Enter two numbers").split() 

    Вот и все. существует еще один метод (явный метод). Например, вы хотите ввести ввод в три значения

     value=input("Enter the line") a,b,c=value.split() 

    ЛЕГКО..

    Это пример кода для ввода двух входов, разделенных командой split и разделителем как «,»,


    >>> var1, var2 = input("enter two numbers:").split(',')
    >>>enter two numbers:2,3
    >>> var1
    '2'
    >>> var2
    '3'


    Другие варианты разделителей, которые можно использовать, следующие:
    var1, var2 = input("enter two numbers:").split(',')
    var1, var2 = input("enter two numbers:").split(';')
    var1, var2 = input("enter two numbers:").split('/')
    var1, var2 = input("enter two numbers:").split(' ')
    var1, var2 = input("enter two numbers:").split('~')

    Python - лучший язык программирования в мире.