Мне нужны входные данные с клавиатуры в консоли Python, как это:

 1427  0   

   876652098643267843 
5276538

Как я могу поймать их в массив?

0
Nursultan Aidarkulov 18 Дек 2015 в 09:17

3 ответа

Лучший ответ

Если вам нравится отправлять EOF и скрипт обрабатывает данные, вы можете использовать этот код:

import math
import sys
result = []
for line in sys.stdin.readlines():
    data = line.split(' ')
    for Ai in data:
        Ai = Ai.strip()
        try:
            result.append(math.sqrt(int(Ai)))
        except:
            pass

for i in reversed(result):
    print("%.4f"%i)

В Windows вам нужно нажать CTRL + Z и затем ENTER. Вы увидите ^ Z в оболочке CMD. В Linux нажмите CTRL + D.

0
kotlet schabowy 18 Дек 2015 в 08:39

Сначала вам нужно прочитать многострочные данные в Python. Как это сделать, описано здесь: необработанный ввод через несколько строк- в - питон

Как только вы введете переменную, вы обработаете ее.

Очень простой пример. Не знаю, соответствует ли оно требованиям вашей задачи:

import math
sentinel = '#' 
result = []
all_data = iter(raw_input, sentinel)
for line in all_data:
    data = line.split(' ')
    for Ai in data:
        Ai = Ai.strip()
        try:
            result.append(math.sqrt(int(Ai)))
        except:
            pass

for i in reversed(result):
    print("%.4f"%i)

Теперь ваша задача оптимизировать.

0
kotlet schabowy 18 Дек 2015 в 07:29

Попробуй это:

import fileinput

for line in fileinput.input():
    #your code
    print(line)

Это будет принимать поток символов, пока не встретится EOF. (Cnrl + D)

Затем вы можете разделить каждую строку, чтобы получить отдельные значения.

0
astrosyam 18 Дек 2015 в 07:10