无法获取要在循环中复制的二进制代码

2024-09-29 23:23:41 发布

您现在位置:Python中文网/ 问答频道 /正文

首先,我对编码基本上是新手,这是我第一篇寻求帮助的帖子之一,如果我遗漏了什么,很抱歉。 我正在用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

Tags: 代码answernumber编码帖子intdecimalenter
2条回答

所以你有很多选择

也许最简单的方法就是这样做:

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

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

输出:

Please enter a 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

假设您想自己进行计算,可以使用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循环为a数字生成二进制,因此它应该是您的内部循环。您的for循环提供了要处理的值

您可以使用内置方法将其转换为二进制。您可以在https://docs.python.org/3/library/functions.html#bin中找到有关bin方法的详细信息

rqn3=int(input("Please enter a number: "))
for i in range(1,rqn3+1):
    print("Decimal:",i ,"= binary:",bin(i)[2:])

相关问题 更多 >

    热门问题