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

Как считать неизвестное количество строк python

  • автор:

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

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 серебряных знаков 222 222 бронзовых знака
ответ дан 22 фев 2017 в 22:51
8,582 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

Чтобы подсчитать количество строк в DataFrame, вы можете использовать свойство dataframe.shape или dataframe.count() .

Dataframe.shape возвращает кортеж, содержащий количество строк в качестве первого элемента и количества столбцов в качестве второго элемента. Индексируя первый элемент, мы можем получить количество строк в DataFrame:

import pandas as pd # initialize dataframe df = pd.DataFrame('a': [1, 4, 7, 2], 'b': [2, 0, 8, 7]>) # number of rows in dataframe num_rows = df.shape[0] print('Number of Rows in DataFrame :',num_rows) # => Number of Rows in DataFrame : 4 

Dataframe.count() , с значениями параметров по умолчанию возвращает количество значений вдоль каждого столбца. А в DataFrame каждый столбец содержит одинаковое количество значений, равных количеству строк. Индексируя первый элемент, мы можем получить количество строк в DataFrame:

import pandas as pd # initialize dataframe df = pd.DataFrame('a': [1, 4, 7, 2], 'b': [2, 0, 8, 7]>) # number of rows in dataframe num_rows = df.count()[0] print('Number of Rows in DataFrame :',num_rows) # => Number of Rows in DataFrame : 4 

Чтение неизвестного количества строк с консоли

Мне нужно прочитать неизвестное количество строк из stdin в python3. Есть ли способ сделать это без каких-либо модулей? Еще один вопрос: Как обозначить конец ввода для нескольких строк в python3?

Поделиться Источник 03 апреля 2019 в 17:18

2 ответа

Попробуйте что-то вроде этого

a_lst = [] # Start with empty list while True: a_str = input('Enter item (empty str to exit): ') if not a_str: # Exit on empty string. break a_lst.append(a_str) print(a_lst) 

Поделиться 03 апреля 2019 в 17:27

Мы можем использовать try и except следующим образом

while True: try: n = int(input()) # Perform your operations except EOFError: # You can denote the end of input here using a print statement break 

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

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