Как напечатать (все) результат (ы) цикла while в обратном порядке? - PullRequest
0 голосов
/ 21 мая 2019
#decimalToBinary

num=int(input("Enter number"))

while num!=0:
    bin=num%2
    num=num//2
    print(bin,end=" ")

Допустим, здесь введено 13. Вход выдаст: 1 0 1 1.
Как я могу напечатать его в обратном порядке (т. Е. 1 1 0 1)?

Ответы [ 5 ]

2 голосов
/ 21 мая 2019

Сохраните его в списке, затем распечатайте в обратном порядке.


#decimalToBinary

num=int(input("Enter number"))
output = []
while num!=0:
    bin=num%2
    num=num//2
    output.append(bin)

print (output[::-1])

Для печати результатов в виде строки

print (' '.join([str(o) for o in output[::-1]]))

EDIT Как предложено в комментариях , вот подход, избегающий списков.

#decimalToBinary

num=int(input("Enter number"))
output = ''
while num!=0:
    bin=num%2
    num=num//2
    output = str(bin) + output

print (output)
1 голос
/ 21 мая 2019

Вы можете построить весь результат в строку, а затем перевернуть ее:

num = 13
bin = ""
while num!=0:
    bin += str(num%2) + " "
    num=num//2

bin = bin.strip();

print(bin[::-1])

Выходы:

1 1 0 1

1 голос
/ 21 мая 2019

Не прибегая к некоторым более сложным трюкам, пытаясь манипулировать тем, где вы печатаете вещи в консоли, может быть проще создать строку в цикле:

num=int(input("Enter number"))
digits = []
while num!=0:
    bin=num%2
    num=num//2
    digits.append(bin)

и впоследствии ее перевернуть:

print(digits[::-1]) #this will possibly need formatting.

Чтобы отформатировать это с пробелами, попробуйте:

print(" ".join(str(x) for x in L[::-1]))
0 голосов
/ 21 мая 2019

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

from __future__ import print_function
num=int(input("Enter number"))
bin = []
while num!=0: 
    bin.append(num%2) 
    num=num//2
print(*bin[::-1], sep=' ')
0 голосов
/ 21 мая 2019

для вашего примера это должно работать:

num=int(input("Enter number"))
lst=list()
while num!=0:
    bin=num%2
    num=num//2
    lst.append(bin)

print(lst,lst[::-1])

выход:

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