Пример пользовательского ввода списка чисел, разделенных пробелами:
numbers = list(map(int, input("Введите числа через пробел: ").split()))
Пояснения:
input("Введите числа через пробел: ")
- Получает строку ввода от пользователя..split()
- Разбивает строку на список строк по пробелам.map(int, ...)
- Применяет функцию int
к каждому элементу списка строк, преобразуя их в целые числа.list(...)
- Преобразует результат map
в список.Для задания пользовательского ввода списка чисел на Python, существует несколько подходов, учитывая разные требования к формату ввода и валидации данных. Вот несколько наиболее распространенных:
Этот метод предполагает, что пользователь вводит числа, разделенные пробелами, а затем программа преобразует строку в список чисел.
def get_list_from_space_separated_input():
"""Получает список чисел, разделенных пробелами, от пользователя."""
try:
input_string = input("Введите числа, разделенные пробелами: ")
numbers = [int(x) for x in input_string.split()]
return numbers
except ValueError:
print("Ошибка: Введены некорректные данные. Пожалуйста, введите только числа, разделенные пробелами.")
return None # Или можно повторить запрос ввода
# Пример использования:
my_list = get_list_from_space_separated_input()
if my_list:
print("Введенный список:", my_list)
Объяснение:
input()
получает строку ввода от пользователя.input_string.split()
разделяет строку на список подстрок, используя пробел в качестве разделителя.[int(x) for x in ...]
использует генератор списка для преобразования каждой подстроки в целое число.try...except
блок обрабатывает исключение ValueError
, которое возникает, если пользователь ввел что-то, что нельзя преобразовать в число.Аналогично предыдущему, но используется запятая в качестве разделителя.
def get_list_from_comma_separated_input():
"""Получает список чисел, разделенных запятыми, от пользователя."""
try:
input_string = input("Введите числа, разделенные запятыми: ")
numbers = [int(x.strip()) for x in input_string.split(',')] # .strip() для удаления лишних пробелов
return numbers
except ValueError:
print("Ошибка: Введены некорректные данные. Пожалуйста, введите только числа, разделенные запятыми.")
return None
# Пример использования:
my_list = get_list_from_comma_separated_input()
if my_list:
print("Введенный список:", my_list)
Важно: Добавлен .strip()
для удаления возможных пробелов вокруг чисел.
Этот метод требует, чтобы пользователь вводил каждое число на новой строке, а программа запрашивала числа до тех пор, пока пользователь не укажет, что ввод завершен (например, введет определенную команду или пустую строку).
def get_list_from_newline_separated_input():
"""Получает список чисел, каждое число на новой строке."""
numbers = []
print("Введите числа, каждое на новой строке. Введите 'done' для завершения.")
while True:
input_string = input()
if input_string.lower() == 'done':
break
try:
number = int(input_string)
numbers.append(number)
except ValueError:
print("Ошибка: Введите целое число или 'done'.")
return numbers
# Пример использования:
my_list = get_list_from_newline_separated_input()
print("Введенный список:", my_list)
Объяснение:
while True
создает бесконечный цикл, пока пользователь не введет 'done'.input_string.lower() == 'done'
преобразует ввод в нижний регистр для сравнения без учета регистра.Сначала запрашивается количество чисел, а затем запрашиваются сами числа.
def get_list_with_count():
"""Получает список чисел, с предварительным указанием количества."""
try:
count = int(input("Введите количество чисел в списке: "))
if count <= 0:
print("Количество чисел должно быть больше 0.")
return None
numbers = []
for i in range(count):
while True: # Ensure we get a valid number for each iteration
try:
num = int(input(f"Введите число {i+1}: "))
numbers.append(num)
break # Exit inner loop if valid number is entered
except ValueError:
print("Ошибка: Пожалуйста, введите целое число.")
return numbers
except ValueError:
print("Ошибка: Введите целое число для количества чисел.")
return None
# Пример использования:
my_list = get_list_with_count()
if my_list:
print("Введенный список:", my_list)
Объяснение:
for
запрашиваются числа по одному.while True
гарантирует, что будет введено валидное целое число для каждой позиции в списке.Важно: Все приведенные примеры обрабатывают исключения ValueError
, чтобы предотвратить сбой программы при некорректном вводе. В зависимости от требований к вашему приложению, вы можете добавить дополнительную валидацию (например, проверку диапазона чисел).