Python-lis中的“TypeError:not all parameters during string formatting”中的“TypeError:not all parameters during string formatting”

2024-10-02 18:27:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个递归函数,它将打印一个以10为底的整数转换为另一个基数的等效整数的结果。在11号线,我收到:

TypeError: not all arguments converted during string formatting

有人能看出我在这里做错了什么吗?我该怎么解决它?在

list = []

def con2base(integer, base):
    if integer == 0:
        if list == []:
            list.insert(0, 0)
            return 0
        else:
            return 0
    while integer > 0:
        list.insert(0, (integer % base))    <----- This is the offending line
        return con2base(integer / base, base)

print ("Enter number to be converted: ")
integer = raw_input()
print ("Enter base for conversion: ")
base = raw_input()
con2base(integer, base)

print list

Tags: inputbaserawreturnif整数integerlist
1条回答
网友
1楼 · 发布于 2024-10-02 18:27:04

raw_input将始终返回字符串对象,而不是实际的整数。您需要先将它们都转换为ints。在

print ("Enter number to be converted: ")
integer = int(raw_input())
print ("Enter base for conversion: ")
base = int(raw_input())
con2base(integer, base)

出现奇怪错误消息的原因是%是一个也可以处理字符串的运算符;具体地说,它是字符串格式运算符。它允许您使用“placeholder”元素创建一个字符串,您可以在运行时用其他字符串填充这些元素。因此,当您使用raw_input获得数字,然后尝试使用%时,Python认为您正在尝试进行字符串格式化/替换。在

相关问题 更多 >