首页 > 解决方案 > 无法让二进制代码在循环中复制

问题描述

首先,我通常是编码新手,这是我第一次寻求帮助的帖子之一,如果我遗漏了任何内容,很抱歉。我正在用python编写代码以获得以下输出:

Please enter number: 10

Decimal: 1 = binary: 1
Decimal: 2 = binary: 10
Decimal: 3 = binary: 11
Decimal: 4 = binary: 100
Decimal: 5 = binary: 101
Decimal: 6 = binary: 110
Decimal: 7 = binary: 111
Decimal: 8 = binary: 1000
Decimal: 9 = binary: 1001
Decimal: 10 = binary: 1010

我已经被困了很长一段时间,并认为我最好的选择是在这里问。

 rqn3=int(input("Please enter a number: "))
 while decimal < rqn3:
   for decimal in range(1, rqn3+1):
        remainder = rqn3 % 2
        rqn3 = rqn3 // 2
        answer = str(remainder) + answer
        decimal+1
        print("Decimal:",decimal ,"= binary:",answer)
   decimal+1

导致:

Please enter a number: 2
Decimal: 1 = binary: 0
Decimal: 2 = binary: 10

标签: pythonloopsbinary

解决方案


所以你有很多选择。

可能最简单的方法就是这样做:

rqn3 = int(input("Please enter a number: "))

for i in range(1, rqn3 + 1):
    print(f'Decimal: {i} = binary: {i:b}')

输出:

请输入数字:10
十进制:1 = 二进制:1
十进制:2 = 二进制:10
十进制:3 = 二进制:11
十进制:4 = 二进制:100
十进制:5 = 二进制:101
十进制:6 = 二进制:110
十进制:7 = 二进制:111
十进制:8 = 二进制:1000
十进制:9 = 二进制:1001
十进制:10 = 二进制:1010

假设您想自己进行计算,您可以使用divmod

rqn3 = int(input("Please enter a number: "))

for i in range(1, rqn3 + 1):
    num = i
    result = ""
    while num != 0:
        num, r = divmod(num, 2)
        result = str(r) + result
    print(f'Decimal: {i} = binary: {result}')

(输出同上)


你的问题是你的循环有问题。该循环while数字生成二进制文件,因此它应该是您的内部循环。您的循环正在提供要处理的值。for


推荐阅读