Как я могу редактировать мой код, который показал результаты отдельно на основе входных данных и избежать дублирования - PullRequest
0 голосов
/ 01 января 2019
def aplusb(a, b):
    return a+b
    # write your code here

q=0
max=int(raw_input())
while q<max :
    a,b = map(int, raw_input().split())
    q=q+1
# q=aplusb(a,b)*q

for q in range(max):
    q = aplusb(a, b)
    print q


if __name__ == "__main__":
    q = int(raw_input())
    for i in range(q):
        inps = [int(_) for _ in raw_input().split()]
        print aplusb(inps[0], inps[1])

когда я ввожу две разные серии чисел, такие как (2,1) и (3,6) Я ожидаю, что результаты будут такими, как (3) \N (9), но они показали (9) /n (9) прямо сейчас!как я могу это исправить?

Ответы [ 2 ]

0 голосов
/ 01 января 2019

Проблема в том, что ваш код изменяет значения a и b, прежде чем он выводит на них результаты вычислений.

Я полагаю, что вы не хотите, чтобы входные данные чередовались свыход.Таким образом, вы должны временно хранить входные данные или результаты в списке.Этот подход сохраняет входные данные, потому что это ближе к вашему исходному коду.

def aplusb(a, b):
    return a+b

inps = []
max=int(raw_input())

for q in range(max):
    inps.append(map(int, raw_input().split()))

# At this point, using your sample data, inps looks like [[2,1], [3,6]]

for a, b in inps:
    q = aplusb(a, b)
    print q

В качестве примечания: если вы только начинаете Python, вы действительно не должны учить себя Python2. Пожалуйста, рассмотрите возможность установки и использования Python 3.

0 голосов
/ 01 января 2019

Код перед if __name__ ... читает все входные данные в первом цикле while, но затем использует только последний a & b для каждой итерации второго цикла while.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...