如何 return 不带引号的字符串 Python 3

How to return a string without quotes Python 3

我必须编写一个单输入模块,可以将小数转换为 Bukiyip(一些以 3 或 4 为基数的古老语言)。为了作业的目的,我们只需要使用基数 3。

我已经编写了一些执行此操作的代码,但是 returns 我的 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))

您要么在解释器中回显 return 值,包括容器(例如列表、字典、集合或元组)中的结果,要么直接为 repr() 生成输出你的结果。

你的函数(正确地)return是一个字符串。当在解释器中回显或使用 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

int() 行不通?你看,这些引号不是为了装饰。它们是字符串文字表示的一部分。 "hello" 是一个字符串。它不是带引号的 hello 。裸 hello 是一个标识符,一个名称。所以你不想从字符串中去掉引号,这没有任何意义。你想要的是 int.