将基数转换为2到9之内的基数

时间:2017-10-24 10:01:15

标签: python python-3.x list base

好的,所以我迷失了,并坚持如何取得进一步的进展。 该程序将用户输入的基数的值返回到像[1,2,2]这样的列表中。 我想做两件事。首先,而不是像

这样的单一数字
userInt = 50

我希望能够输入

userList = [50, 3, 6, 44]

然后让公式将每个数字转换为正确的基数。

因此,如果我将其转换为基数6,我希望结果为:

userNewList = [122, 3, 10, 112]

我已尝试使用for循环,但无法正确使用并最终只是通过int不是可迭代类型错误。

def baseConversion(userInt, base):
    remList = []
    while(userInt > 0):
        remList.append(userInt % base)
        userInt = userInt // base     
    return (remList[::-1])       


def main():
    base = int(input('Enter a base: '))
    userInt = 50
    remList = baseConversion(userInt, base)
    baseConversion(userInt, base)
    print(remList)
main()

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:1)

使用Python 2.7,但你可以得到这个想法:

>>> def baseConversion(userInt, base):
        remList = ''
        while(userInt > 0):
            remList += str(userInt % base)
            userInt = userInt // base
        return int(remList[::-1]) # If you are just printing, you don't need to convert to int.

>>> def main():
        base = int(raw_input('Enter a base:'))
        userInt = [int(s.strip()) for s in raw_input('Enter numbers (comma separated):').split(',')]
        result = [baseConversion(i, base)  for i in userInt]
        print result


>>> main()
Enter a base:6
Enter numbers (comma separated):50,3,6,44
[122, 3, 10, 112]