Пользовательский ввод чисел в строку
Функция input() возвращает все в виде строки, поэтому нужно выполнить явную конвертацию, чтобы получить целое число. Для этого пригодится функция int() .
# вывод суммы двух чисел, введенных пользователем
num_1 = int(input("Введите первое число: "))
num_2 = int(input("Введите второе число: "))
print("Тип num_1:", type(num_1))
print("Тип num_2:", type(num_2))
result = num_1 + num_2
print("Сумма введенных чисел:", result)int(string) конвертирует переданную строку в целое число.
Ввода числа float
По аналогии можно использовать функцию float() .
float_1 = float(input("Введите число: "))
print("Тип float_1:", type(float_1))
result = float_1 ** 2
print("Число в квадрате:", result)Введите число: 1.8 Тип float_1: Число в квадрате: 3.24Ввод чисел в строку через пробел
Но что произойдет, если вы не знаете количество элементов ввода?
Предположим, что от пользователя нужно получить список чисел и вернуть их сумму. При этом вы не знаете количество элементов в этом списке. Как же запросить ввод для него?
Для этого можно использовать split и функции map . Метод split() делит введенную строку на список подстрок. После этого map() выполняет функцию int() для каждого элемента списка.
entered_list = input("Введите список чисел, разделенных пробелом: ").split()
print("Введенный список:", entered_list)
num_list = list(map(int, entered_list))
print("Список чисел: ", num_list)
print("Сумма списка:", sum(num_list))Введите список чисел, разделенных пробелом: 1 34 4 6548 Введенный список: ['1', '34', '4', '6548'] Список чисел: [1, 34, 4, 6548] Сумма списка: 6587
- input() возвращает список, содержащий числа, разделенные запятыми.
- split() возвращает список строк, разделенных пробелами.
- map() выполняет операцию int() для всех элементов списка и возвращает объект map .
- list() конвертирует объект map снова в список.
Есть альтернативный способ получить список:
entered_list = input("Введите список чисел, разделенных пробелом: ").split()
num_list = [int(i) for i in entered_list]
print("Список чисел: ", num_list)Обработка ошибок при пользовательском вводе
Часто при конвертации типов возникает исключение ValueError .
Это происходит в тех случаях, когда введенные пользователем данные не могут быть конвертированы в конкретный тип.
Например, пользователь вводит случайную строку в качестве возраста.
num = int(input("Введите возраст: "))Функция int() ожидает целочисленное значение, обернутое в строку. Любое другое значение приводит к ошибке. Вот что будет, если, попробовать ввести «Двадцать»:
Введите возраст: Двадцать --------------------------------------------------------- ValueError Traceback (most recent call last) in ----> 1 num_1 = int(input('Введите возраст: ')) ValueError: invalid literal for int() with base 10: 'Двадцать'Чтобы убедиться, что пользователь вводит только подходящую информацию, нужно обработать массу подобных ошибок. Для этого будем использовать перехват исключений.
try:
num = int(input("Введите число: "))
print("Все верно. Число:", num)
except ValueError:
print("Это не число.")Посмотрим, как ввод «Двадцать» сработает теперь:
Введите число: Двадцать Это не число.В этом примере если пользователь вводит нечисловое значение, то возникает исключение. Однако оно перехватывается инструкцией except , которая в ответ выводит: «Это не число». Благодаря использованию конструкции try-except программа не прекратит работать при некорректном вводе.
Я создал этот блог в 2018 году, чтобы распространять полезные учебные материалы, документации и уроки на русском. На сайте опубликовано множество статей по основам python и библиотекам, уроков для начинающих и примеров написания программ.
Мои контакты: Почта
Python Q https://yandex.ru/q/loves/python OnlinePython Q CEO Pythonru admin@pythonru.com https://secure.gravatar.com/avatar/b16f253879f7349f64830c64d1da4415?s=96&d=mm&r=g CEO Pythonru Python Александр Редактор https://t.me/cashncarryhttps://pythonru.com/https://yandex.ru/q/profile/cashnc/ PythonRu.com admin@pythonru.com Alex Zabrodin 2018-10-26 Online Python, Programming, HTML, CSS, JavaScript
Ввод нескольких переменных в одной строке
Добрый день. Можно ли сделать так, чтобы вместо списка вводилось 3 разных переменных, но в одной строке?
Так не получается
a, b, c = int(input())
Нужно ввести 3 числа в одной строке без использования списка, массива и т.п. Чтобы каждое число записалось в отдельную переменную.
Допустим
a, b, c = int(input())
Я ввожу "5 2 3"
И при
print(a)
print(b)
print(c)
пользователь получает
5
2
3Лучшие ответы ( 3 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:Ввод нескольких переменных в одной строке
Всем здравствуйте. Не давно начал изучать питон и решил порешать задачи. И буквально на первой.Инициализация нескольких переменных в одной строке
Привет. Иногда нужно инициализировать переменные, иначе программа не запускается. Я сейчас так.
Ввод нескольких значений в одной строке
#include <iostream> #include <vector> using namespace std; int main() < int count; cin >>.Как можно сделать ввод 3 переменных в одной строке?
Как можно сделать ввод 3 переменных в одной строке, чтобы программа была компактней? using.
Написать программу, которая обеспечивает ввод значений дробных переменных (типа float) u и r. Предполагается, что пользователь будет набирать числа в одной строке.
Немного непонятная задачка. Тут пользователь может вводить данные "значение пробел значение".
5890 / 3348 / 1034
Регистрация: 03.11.2009
Сообщений: 9,977
Сообщение было отмечено corpdid как решение
Решение
a, b, c = map(int, input().split())Ввод n элементов в одну строку
пояснение: input() содержит введённую строку, .split() разбивает её по пробельным символам, создавая список полученных значений, дальше каждый элемент этого списка превращается в int , и добавляется в список i
Это выражение аналогично следующему:
i = [] for a in input().split(): i.append( int(a) )IN: "12 214 5 24 5" OUT: [12, 214, 5, 24, 5]использование в вашей программе:
i = 1 k = 0 p = 0 n = int(input()) # не будет использоваться nums = [int(a) for a in input().split()] for a in nums: if a % 2 == 0: k += 1 if a % 2 != 0: p += 1 print(abs(k-p))Как сделать ввод нескольких переменных в одну строку?
Первым значением мне дают сколько переменных будет введено(0 ≤ N ≤ 15) :
11
а потом вводятся эти значения :
2 5 2 3 6 9 3 1 3 4 6
Как это оформить ?
или нужно писать if на каждое значение ?
- Вопрос задан более двух лет назад
- 3160 просмотров
Комментировать
Решения вопроса 1

Владимир Куц @fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
num = int(input()) data = [] while num > 0: data.append(int(input())) num -= 1 print(data)
если нужно именно в одну строку:
num = int(input()) data = [] while len(data) != num: data = list(map(int, input().split(' '))) print(data)
Ответ написан более двух лет назад
Нравится 1 1 комментарий

soremix @SoreMix Куратор тега Python
num = int(input()) data = [int(input()) for _ in range(num)]
num = int(input()) data = [int(x) for x in input().split()[:num]]
слишком просто?

