Сохранять исходные данные как часть заявления на печать - PullRequest
0 голосов
/ 28 апреля 2019

У меня есть два входа, a и b, и я пытаюсь выполнить операцию. Мой код выглядит следующим образом:

a = int(input("Enter an integer A to be multiplied: "))
b = int(input("Enter an integer B to be multiplied: "))

while b > 1:
    b //= 2
    a *= 2
    sequence = a, b
    print(sequence)

Если я введу 34 и 19, это будет вывод

Enter an integer A to be multiplied: 34
Enter an integer B to be multiplied: 19
(68, 9)
(136, 4)
(272, 2)
(544, 1)

Однако я хотел бы включить в вывод свои исходные данные 34 и 19. Что мне нужно изменить / добавить, чтобы это произошло?

Ответы [ 2 ]

1 голос
/ 28 апреля 2019

Вы можете сохранить исходные значения и затем распечатать их как кортежи:

In [59]: a = int(input("Enter an integer A to be multiplied: "))
...: b = int(input("Enter an integer B to be multiplied: "))
...: orig_a = a
...: orig_b = b
...: while b > 1:
...:     b //= 2
...:     a *= 2
...:     sequence = a, b
...:     print((orig_a, orig_b),sequence)
#Output:
Enter an integer A to be multiplied: 6
Enter an integer B to be multiplied: 7
(6, 7) (12, 3)
(6, 7) (24, 1)

Или, если вы хотите, чтобы все значения в одном кортеже просто изменились:

sequence = orig_a, orig_b,a, b
print(sequence)
#Output:
Enter an integer A to be multiplied: 34
Enter an integer B to be multiplied: 19
(34, 19, 68, 9)
(34, 19, 136, 4)
(34, 19, 272, 2)
(34, 19, 544, 1)
0 голосов
/ 28 апреля 2019

Это, вероятно, сработает, поскольку, когда b падает ниже 2, целочисленное деление округляется до нуля:

a = int(input("Enter an integer A to be multiplied: "))
b = int(input("Enter an integer B to be multiplied: "))

while True:
    print(a, b)
    b //= 2
    a *= 2
    if b < 1:
        break
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...