Два значения из одного входа в Python? - PullRequest
32 голосов
/ 07 июня 2009

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

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

Кто-нибудь знает хороший способ сделать это элегантно и лаконично?

Ответы [ 18 ]

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

Это пример кода, который принимает два входа, разделенных командой 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('~')

1 голос
/ 08 июля 2017

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

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

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

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

ЛЕГКО ..

0 голосов
/ 17 февраля 2019

, если мы хотим, чтобы два входа в одной строке, поэтому код выглядит следующим образом: enter code here

x,y=input().split(" ")

print(x,y)

после ввода значения в качестве входных данных мы должны задать пробелы между ними из-за функции или метода split ("").

но эти значения относятся к строковому типу, если для выполнения некоторых арифметических операций нам нужно преобразовать тип x, y следующим образом Int (х), Int (у)

мы можем сделать это также с помощью списка в Python. enter code here

list1=list(map(int,input().split()))
print(list1)

этот список содержит элементы типа int

0 голосов
/ 20 декабря 2018

Вы можете сделать это так

a, b = map(int, input().split())

OR

a, b = input().split()
print(int(a))

OR

MyList = list(map(int, input().split()))
a = MyList[0]
b = MyList[1]
0 голосов
/ 25 ноября 2018

Это решение используется для преобразования нескольких строк, например ("22 44 112 2 34") в список целых чисел, и вы можете получить доступ к значениям в списке.

n = input("") # Like : "22 343 455 54445 22332"

if n[:-1] != " ":
n += " "

char = ""
list = []

for i in n :
    if i != " ":
        char += i
    elif i == " ":
        list.append(int(char))
        char = ""

print(list) # Be happy :))))
0 голосов
/ 26 октября 2018

Я пробовал это в Python 3, кажется, работает нормально.

a, b = map(int,input().split())

print(a)

print(b)

Ввод: 3 44

Выход:

3

44

0 голосов
/ 22 июля 2018

В Python 3 raw_input() был переименован в input().

input([prompt])

Если аргумент подсказки присутствует, он записывается в стандартный вывод без завершающей строки. Затем функция читает строку из ввода, преобразует его в строку (убирая завершающий перевод строки) и возвращает тот. Когда EOF читается, EOFError повышается.

Так что вы можете сделать это

x, y = input('Enter two numbers separating by a space: ').split();
print(int(x) + int(y))

Если вы не поставите два числа, используя пробел, вы получите исключение ValueError. Так что это хорошо идти.

N.B. Если вам нужно старое поведение input(), используйте eval(input())

0 голосов
/ 07 июля 2018
a,b=[int(x) for x in input().split()]
print(a,b)

выход

10 8

10 8

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...