如何返回没有引号Python 3的字符串

时间:2016-04-06 13:04:54

标签: python python-3.x return quotes base

我必须编写一个单输入模块,可以将小数转换为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))

2 个答案:

答案 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