【问题标题】:How to return a string without quotes Python 3如何返回不带引号的字符串 Python 3
【发布时间】:2016-07-26 21:51:13
【问题描述】:

我必须编写一个单输入模块,可以将小数转换为 Bukiyip(一种计数基数为 3 或 4 的古代语言)。为了分配的目的,我们只需要使用 base 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))

【问题讨论】:

  • 这些是引号,而不是撇号。你的意思是你的函数返回一个字符串,而不是一个整数?
  • 请注意,110 将是一个 十进制 值,即 110。您正在用另一种表示法创建表示,为什么这里的字符串不够好?你是如何打印输出的?换句话说,您能在所有人都跳进来告诉您使用int(result)之前在这里告诉我们您的更大问题吗?
  • 嗨@MartijnPieters,是的,我认为这就是我弄错了。
  • 如果您只使用print() 将结果写入您的控制台,您不会得到包含这些引号的,因为这样会写出实际的字符串值。所以print(bukiyip_to_decimal(12)) 不会显示引号(这是字符串文字表示的一部分,对调试很有用)。
  • @MartijnPieters 你已经回答了!我知道在哪里修复错误 - 非常感谢。

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


【解决方案1】:

您要么在解释器中回显返回值,包括容器中的结果(例如列表、字典、集合或元组),要么直接为结果生成 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

【讨论】:

  • 如果只返回真/假而没有任何引号怎么办??就像 a = true/false;返回一个。注意 'true' 中的 't' 或 'false' 中的 'f' 必须很小。
【解决方案2】:

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

【讨论】:

  • 嗨@CPanda,感谢您的建议。我无法让它与 int() 一起工作,我认为这是因为我把它放在了错误的地方。我不明白如何从 'bukiyip_to_decimal(num//3) + convert_to_string[num%3]' 返回/打印一个整数?
  • + 是用于连接吗?如果是则return int(bukiyip_to_decimal(num//3) + convert_to_string[num%3])
  • 刚刚像 Martjin 建议的那样检查了看涨期权,并意识到解决方案就在我面前。感谢您的所有帮助!
猜你喜欢
  • 2018-09-10
  • 1970-01-01
  • 2019-02-12
  • 2016-02-14
  • 2023-03-09
  • 1970-01-01
  • 2018-03-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多