我正在编写一个递归函数,它将打印一个以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
raw_input
将始终返回字符串对象,而不是实际的整数。您需要先将它们都转换为int
s。在出现奇怪错误消息的原因是
%
是一个也可以处理字符串的运算符;具体地说,它是字符串格式运算符。它允许您使用“placeholder”元素创建一个字符串,您可以在运行时用其他字符串填充这些元素。因此,当您使用raw_input
获得数字,然后尝试使用%
时,Python认为您正在尝试进行字符串格式化/替换。在相关问题 更多 >
编程相关推荐