在python中将以10为基数的整数列表转换为以4为基数的整数列表
首先,如果标题不正确,我很抱歉。 我正在尝试构建一个程序,将一个以10为基数的整数列表转换成二进制字符串在python中将以10为基数的整数列表转换为以4为基数的整数列表,python,list,Python,List,首先,如果标题不正确,我很抱歉。 我正在尝试构建一个程序,将一个以10为基数的整数列表转换成二进制字符串 a = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] 我想把它转换成基数4。也许应该是这样 b4 = [[00],[01],[02],...[33]] NameError: name 'pix' is not defined 下面是我到目前为止写的内容 def base10base4(pix,b): pix = [0,1,2,3,4,5,
a = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
我想把它转换成基数4。也许应该是这样
b4 = [[00],[01],[02],...[33]]
NameError: name 'pix' is not defined
下面是我到目前为止写的内容
def base10base4(pix,b):
pix = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
for i in range(pix):
digits = []
while pix > 0:
digits.insert(0, pix % b)
pix = pix // b
print(base10base4(pix[i], 4))
当我运行这段代码时,它会给我这样的错误
b4 = [[00],[01],[02],...[33]]
NameError: name 'pix' is not defined
我对Python仍然很陌生。我是否遗漏了什么或者我需要更改整个代码?我正在使用Python 3.5
感谢您的帮助这是一个递归函数,返回列表中整数的以b为基表示的字符串列表
def convertToBase(num,base):
q=num/base
r=num%base
if (q == 0):
return str(r)
else:
return convertToBase(q,base) + str(r)
pix = [0,3,15,56,12,34] #the list of numbers you want converted to base b
print [convertToBase(x,4) for x in pix]
您需要在
base10base4()
函数之外定义pix
。代码中还有更多的问题。base10base4
实际上并不返回任何内容。为什么要对范围内的i(pix)执行?循环基本上会将小于pix的所有数字转换为四进制(base4),然后丢弃结果。谢谢你的回答谢谢你的回答。通过“假设列表仅包含0到15之间的数字”,您的意思是如果列表中的数字超过15,此代码将不起作用吗?对不起…您的代码似乎以小数形式返回结果Mr@Kaustav Datta如果我要更改数字超过15的基数,我是否必须添加一些内容?不,我编写了之前的代码,试图对您的代码进行最小的更改,以显示您的去向错误,以及如何修复它。我编辑了上面的代码,其中我编写了一个通用函数来将num转换为任意基。