如何以相反顺序打印(全部)while循环的结果?

时间:2019-05-21 14:24:48

标签: python while-loop

#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 个答案:

答案 0 :(得分:2)

将其存储在列表中,然后反向打印。


#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]]))

编辑comments中的建议,这是避免使用列表的方法。

#decimalToBinary

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

print (output)

答案 1 :(得分:1)

如果不使用一些更困难的技巧来尝试在控制台中打印内容,那么在循环中建立字符串可能会更容易:

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]))

答案 2 :(得分:1)

您可以将整个结果构建为字符串,然后将其反转:

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

bin = bin.strip();

print(bin[::-1])

输出:

  

1 1 0 1

答案 3 :(得分:0)

对于您的示例,这应该可以工作:

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]

答案 4 :(得分:0)

好吧,您可以将 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=' ')