我必须编写一个单输入模块,可以将小数转换为Bukiyip(一些古老的语言,计数基数为3或4)。出于分配的目的,我们只需要使用基数3。
我已经编写了一些执行此操作的代码,但它会返回带引号的Bukiyip数字,并为我留下一个答案,例如“110”为12。
请帮助我了解如何解决这个问题?我是Python的新手并且热衷于学习,所以解释将非常感激。
def bukiyip_to_decimal(num):
convert_to_string = "012"
if num < 3:
return convert_to_string[num]
else:
return bukiyip_to_decimal(num//3) + convert_to_string[num%3]
我也尝试过以下操作,但会收到错误。
else:
result = bukiyip_to_decimal(num//3) + convert_to_string[num%3]
print(int(result))
答案 0 :(得分:2)
您要么在解释器中回显返回值,包括容器中的结果(例如列表,字典,集合或元组),要么直接为结果生成repr()
输出。
您的函数(正确)返回字符串。当在解释器中回显或使用repr()
函数时,您将获得一个调试友好表示,对于字符串,这意味着Python将以您可以复制并粘贴回来的方式格式化值Python重现价值。这意味着包含了引号。
只需打印值本身:
>>> result = bukiyip_to_decimal(12)
>>> result
'110'
>>> print(result)
110
或在其他输出中使用它:
>>> print('The Bukiyip representation for 12 is {}'.format(result))
The Bukiyip representation for 12 is 110
答案 1 :(得分:0)
int()
不起作用?你看,报价不是用于装饰。它们是字符串文字表示的一部分。 "hello"
是一个字符串。引号不是hello
。裸hello
是标识符,名称。所以你不想从字符串中删除引号,这没有任何意义。你想要的是int
。