繁体   English   中英

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

[英]How to print (all) the result(s) of a while loop in reverse order?

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

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


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

编辑注释中所建议,这是避免列表的方法。

#decimalToBinary

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

print (output)

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

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

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

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

bin = bin.strip();

print(bin[::-1])

输出:

1 1 0 1

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

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]

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM