Как ввести неизвестное количество чисел в питоне
Перейти к содержимому

Как ввести неизвестное количество чисел в питоне

  • автор:

Считывание при стандартном вводе заранее неизвестного количества целых чисел

Author24 — интернет-сервис помощи студентам

Добрый день. Пишу тут первый раз. Есть задача. Считывание при стандартном вводе заранее неизвестного количества целых чисел (типа longint или long), каждое число находится в отдельной строке. Весь список входных данных преобразуется в стандартный вывод два раза подряд. Нужно решить через классы и методы. Класс я написал, но не могу понять, как сделать ввод неизвестного количества данных и как при этом прекратить ввод(когда данные перестанут поступать). Код прилагаю. В конце, скорее всего, для двойного вывода надо будет просто написать два раза подряд linked_list.out. Заранее благодарю

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Считывание при стандартном вводе заранее неизвестного количества целых чисел
Добрый день. Пишу тут первый раз. Есть задача. Считывание при стандартном вводе заранее.

Считывание заранее неизвестного количества вещественных чисел из файла
Работаю в среде VisualC++ 6.0. Всё что можно сделать алгоритмом чистого си делаю так. Привычка.

Ввод заранее неизвестного количества чисел массива с клавиатуры
Как написать код, чтобы пользователь вводил числа в массив количество элементов которого не известно

Считывание неизвестного количества чисел
Доброго времени суток, извините что отвлеккаю.Помогите начинающему.Имеется задача. Вводится ряд.

Ввод заранее неизвестного количества строк
Знающие люди помогите! Необходимо ввести с консоли определнное количество строк, заранее не.

Обработать неизвестное количество строк в Python

Откуда взялось ограничения 1? for в Python легко справляется с неизвестным количеством строк, например при чтении из файла.

23 фев 2017 в 13:18

Ограничение 1 взялось из задач следующего типа: на ввод подается некое кол-во строк, причем не в файле. Нужно их обработать и что-то сделать. Вот пример такой задачи- pythontutor.ru/lessons/dicts/problems/sales

23 фев 2017 в 19:09

Например так: ideone.com/Zwznnu Понятно, что можно было просто циклом while сделать, но часто проще сначала распарсить входные данные, а потом циклом for по ним пройтись. Цикл for работает с любым итерируемым объектом, не обязательно определённой длины.

23 фев 2017 в 19:24

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Файл в питоне можно итерировать по строкам, например,

for line in sys.stdin: # делаем что угодно со строкой, например print(len(line)) 

Такое будет работать, только если стандарнтый поток ввода не подключен к терминалу, а например, происходит перенаправление из регулярного файла.

Либо можно читать файл по одной строке.

while True: line = sys.stdin.readline() if line == '': break # обработка print(len(line)) 

Разумеется, совсем без циклов обойтись не получится.

Чтобы во всех этих случаях остановиться, когда ввод происходит с терминала, надо нажать CTRL — D (в Linux) или CTRL — Z (в Windows).

Отслеживать
34.1k 25 25 золотых знаков 130 130 серебряных знаков 225 225 бронзовых знаков
ответ дан 22 фев 2017 в 22:51
8,602 4 4 золотых знака 30 30 серебряных знаков 53 53 бронзовых знака

Цикл while здесь ни к чему: это просто многословный способ первый for-цикл написать (если баг с read-ahead буфером на Питоне 2 не рассматривать).

23 фев 2017 в 14:23

Вводим ограничение, что чтение идет только через input . Eсли данные завершились, бросается исключение ValueError (как в PythonTutor) или EOFError (как в Ideone).

Через while

while True: try: try: line = input() except (ValueError, EOFError): break # здесь можно как-то строку обработать print(line) 

Через for

«Упаковываем» цикл while в функцию, и превращаем в итератор (плюс деление каждой строки по пробельным символам):

def inputs(): while True: try: line = input() # Здесь может происходить какая-то предварительная обработка данных: data = line.split() yield data except (ValueError, EOFError): return for name, purchase, count in inputs(): # Окончательная обработка данных print(name, purchase, count) 

Часто бывает удобно делать именно вторым вариантом, если первоначальная обработка (парсинг) текста довольно сложна, и нужно отделить её от собственно обработки данных.

Как складывать неограниченное количество чисел в Python?

Программа складывает введенные числа, а потом пишет, является ли это число четным или нет. Вопрос в следующем: Мне хотелось бы, чтобы можно было ввести неограниченное количество чисел.(А не как в моем случае num_first, num_second и num_third) Как это осуществить?

num_first = int(input("Введите первое число: ")) num_second = int(input("Введите второе число: ")) num_third = int(input("Введите третье число: ")) num = num_first + num_second + num_third print(num) if num % 2 == 0 : print("Четное") else: print("Нечетное")
  • Вопрос задан более трёх лет назад
  • 1059 просмотров

1 комментарий

Простой 1 комментарий

Как ввести неизвестное количество чисел в питоне

rui_er → Codeforces Round 942 (Div. 1, Div. 2)

xug → TJ Invitational Open In Informatics 2024

Aldas25 → BOI 2024 Mirror Contest

Necropost

nisarg_0 → Kontest-Reminder (A Dashboard for upcoming programming contests)

m aroonrk → AtCoder Regular Contest 176 Announcement

PinkieRabbit_buster → PinkieRabbit Cheated in Div. 1 Contest on Apr 27

BledDest → Kotlin Heroes 10 Announcement

Necropost

MikeMirzayanov → Rule about third-party code is changing

hung8A → [Off-Topic] I need some advice on life and mental health.

I_m_sfg → Annoying Question — please help me to solve this problem

atcoder_official → AtCoder Beginner Contest 352 Announcement

Necropost

MikeMirzayanov → About the programming languages

Cipesta. → Beyond CP: What’s Next

flamestorm → Codeforces Round 937 (Div. 4) Editorial

saketag007 → Difficult problem

expolsion673 → Congrats to Israel

Hassan_Fathi → AC turns into TLE with a weird change

awoo → Educational Codeforces Round 165 Editorial

satyam343 → think-cell Round 1

Leftist_G → Why the same codes get difference verdict? (RE and AC)

IceKnight1093 → Invitation to CodeChef Starters 133 (Rated till 6-Stars) — 8th May

mainyutin → Codeforces Round 938 (Div. 3) Editorial

SashaT9 → Codeforces Round 943 (Div. 3) Editorial

Plums → CodeSprint LA 2024 — Registration is Open!

BledDest → Kotlin Heroes Episode 9 Returns!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *