咯咯哒1 发表于 2020-9-9 19:53:43

为什么这套定义十进制转二进制的代码它说b没有被定义呢?



def zhuang(a,b):
    while a>=1:
      d=[]
      if a%2 == 0:
            b.append(0)
      else:
            b.append(1)
    a=floor(a/2)
    print(b)
a=int(input("请输入十进制数列:"))
zhuang(a,b)

1q23w31 发表于 2020-9-9 20:11:44

因为你在调用b之前,就没有定义它
def zhuang(a,b):
    while a>=1:
      d=[]
      if a%2 == 0:
            b.append(0)
      else:
            b.append(1)
    a=floor(a/2)
    print(b)
a=int(input("请输入十进制数列:"))
b = []
zhuang(a,b)

疾风怪盗 发表于 2020-9-9 20:17:09

本帖最后由 疾风怪盗 于 2020-9-9 20:18 编辑

你应该是想要这样的吧
import math
def zhuang(a):
    b = []
    while a >= 1:
      if a % 2 == 0:
            b.append(0)
      else:
            b.append(1)
      a = math.floor(a / 2)
    print(b)

a = int(input("请输入十进制数列:"))
zhuang(a)

这句话要在while里面,还要import math再调用floor
a = math.floor(a / 2)
页: [1]
查看完整版本: 为什么这套定义十进制转二进制的代码它说b没有被定义呢?