gpt4 book ai didi

python - 将十进制转换为二进制的函数中出现未知错误

转载 作者:行者123 更新时间:2023-11-28 22:08:48 25 4
gpt4 key购买 nike

我编写了将十进制转换为二进制的代码。我认为这没有错,但它不起作用。怎么了?

小数 == o 和小数 > 0

def binary_converter(decimal_number):
# ================================

i = decimal_number
if i == 0 :
result = '0'
else :
while i > 0:
if i % 2 == 0:
result = result + '0'
i = i//2
else :
result = result + '1'
i = i//2
#==================================
return result.strip()

最佳答案

有两个正确性问题:

  1. 您需要声明并初始化result

  2. result = result + '0' 附加到字符串的错误一侧,反转输出。使用 result = '0' + result 或在返回前手动反转结果。在循环中重复附加到字符串可能会遇到 Shlemiel the painter’s algorithm .

这里是一个简单的重写:

def binary_converter(i):
result = ""

while i:
result = str(i % 2) + result
i //= 2

return result if result else "0"

这是使用列表重写的:

def binary_converter(i):
result = []

while i:
result.append(i % 2)
i >>= 1

return "".join(map(str, result)) if result else "0"

或者使用内置函数 bin .如果需要删除 0b 前缀,请使用 bin(42)[2:]

请注意,这些函数均未考虑负数。

关于python - 将十进制转换为二进制的函数中出现未知错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58152327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com