python将十进制转化为二进制
我的思路是把每次除以2得到的余数存放在list1中,最后用list1把值给result,但是报错了,应该是语法问题,大家帮我看看把{:10_297:}贴代码呗 ,发图片效果不如代码~~
报错是列表的索引超出范围了~
?不是list1吗?为什么变成list了? 图片那里有问题,a=int(input())那里是没有换行的,应该是我不小心按到了,代码是
def mybin(x):
result = 0
i = 0
list1=[]
while x:
list1 = x % 2
x = x // 2
i += 1
for i in range(0,len(list1)-1,-1):
result = result * 10 + list
return result
a = int(input("请输入一个正整数,求它的二进制"))
print("它的二进制为%d" % mybin(a))
Twilight6 发表于 2020-6-15 20:07
贴代码呗 ,发图片效果不如代码~~
报错是列表的索引超出范围了~
好的 小甲鱼的铁粉 发表于 2020-6-15 20:09
好的
哈哈 你这..... result = 0 了 然后再拿去乘 任何数不是都为零拉 Twilight6 发表于 2020-6-15 20:10
哈哈 你这..... result = 0 了 然后再拿去乘 任何数不是都为零拉
result = result * 10 + list
它是有+的,刚开始result*10是0,它加上list1就不是0了 小甲鱼的铁粉 发表于 2020-6-15 20:12
它是有+的,刚开始result*10是0,它加上list1就不是0了
改成这样呗,你拿去乘的时候有的时候会少一位
def mybin(x):
result = ''
i = 0
while x:
result += str(x % 2)
x = x // 2
i += 1
return result[::-1]
a = int(input("请输入一个正整数,求它的二进制"))
print("它的二进制为%s" % mybin(a))
Twilight6 发表于 2020-6-15 20:17
改成这样呗,你拿去乘的时候有的时候会少一位
{:10_281:}
页:
[1]