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

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

  • автор:

Почему программа не выводит то, что должна

На вход программы поступает неизвестное количество чисел целых, ввод заканчивается нулём. Определить, сколько получено двузначных чисел, которые заканчиваются на 3.
a = 0
n = int(input())
while n!=0:
n = int(input())
if n % 10 == 3 and n < 100 and n >9:
a += 1
print(a)
Программа всегда выводит 0

Лучший ответ

Потому, что n = int(input()) должно быть НЕ первой, а ПОСЛЕДНЕЙ строкой тела цикла.
Ты теряешь первое введённое значение.

И, разумеется, без отступов невозможно понять, накосячил ли ты ещё где-то.

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

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).

Отслеживать
34k 25 25 золотых знаков 130 130 серебряных знаков 223 223 бронзовых знака
ответ дан 22 фев 2017 в 22:51
8,592 4 4 золотых знака 29 29 серебряных знаков 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("Нечетное")
  • Вопрос задан более трёх лет назад
  • 1030 просмотров

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

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

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

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