Какую кнопку следует нажимать после ввода аргументов с помощью sys.stdin.read () в python - PullRequest
0 голосов
/ 24 октября 2019

Я работаю в простом коде Python, который использует библиотеку sys для получения многострочного ввода через cmd, я использую sys.stdin.read () для ввода моего ввода следующим образом:

3 50
60 20
100 50
120 30

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

Я пытался нажать Enter, Ctrl + D и Ctrl + z Ничего не произошло

#Uses python3
import sys

def max_dot_product(a, b):
    a = sorted(a)
    b = sorted(b)
    res = 0
    for i in range(len(a)):
        res += a[i] * b[i]
    return res

if __name__ == '__main__':
    input = sys.stdin.read()
    data = list(input.split())
    n = data[0]
    a = data[1:(n + 1)]
    b = data[(n + 1):]
    print(max_dot_product(a, b))

1 Ответ

0 голосов
/ 25 октября 2019

У меня нормально работает ввод;Я использовал enter (необязательно) и ctrl-D после последней пары значений.

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

data = list(map(int, input.split()))

Вывод:

3 50
60 20
100 50
120 30
[3, 50, 60, 20, 100, 50, 120, 30]
9100
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...