【问题标题】:Python, how to concatenate 2 strings of same value, 0Python,如何连接2个相同值的字符串,0
【发布时间】:2021-09-05 07:25:19
【问题描述】:

为 Python 发布。 我确实阅读了其他帖子,并确定这不是重复的

我在 Python 中创建了两个变量,它们都有字符串 0。我尝试使用 2 个不同的字符串 1 和 0,当我连接它们时,我得到 10。但是当我连接 0 和 0 时,我得到另一个 0。 代码:

a = 0
b = 0
b = int(str(a)+str(b))
print(b)

输出:0。 我希望输出为 00

【问题讨论】:

  • print(str(a) + str(b))

标签: python concatenation


【解决方案1】:

数字中的前导零将被删除。它不会改变值,所以 Python 只是删除它们。

如你所见:

>>> 0123
SyntaxError: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers
>>> 

0 放在文字前面会产生错误。但如果你这样做:

>>> int('0123')
123
>>> 

它会自动去除零。

要修复它,不要将其更改为整数:

a = 0
b = 0
x = str(a) + str(b)
print(x)

输出:

00

【讨论】:

    【解决方案2】:

    删除转换回int

    a = 0
    b = 0
    b = str(a)+str(b)
    print(b)
    

    【讨论】:

      【解决方案3】:

      在这一行 b = int(str(a)+str(b)) 中,您将 00 转换为 int 并且将 int 中的 00 转换为 0。 你可以像下面这样改变你的代码然后你得到你想要的输出:

      a = 0
      b = 0
      print(str(a)+str(b))
      

      也许这个例子对你有帮助:

      print(00)
      # 0
      print("00")
      # 00
      

      【讨论】:

      • TIL 前导零允许在零上!他们不允许在任何其他号码上使用,即使它是明确的......
      • @JiříBaum 感谢您的评论。你说print(00) 不正确吗?是的,当我打字时,左边的零会转换为红色,但我没有收到错误,并且代码在 jupyter 上正确运行
      • TIL = 今天我学到了;在 Python 3 中使用 00 是正确的,但我不知道(并且没想到会这样)
      • @JiříBaum 非常感谢MAN,我不知道 TIL 是什么意思 :)))
      • 今天你了解到TIL 的意思是Today I Learned
      【解决方案4】:

      你在这里混淆了很多术语,我建议你按照python中的类型教程(或阅读the documentation

      关于你的问题。您不是在 a 和 b 中存储字符串,而是在存储整数:

      # These will be integers:
      a = 0
      b = 0
      
      # These will be strings:
      a = '0'
      b = '0'
      

      注意字符串上的引号与整数上的无引号。

      然后你做这部分:

      b = int(str(a)+str(b))
      

      您将 a 和 b 转换为字符串(都包含 '0'),并将它们连接起来,创建字符串 '00'。这就是您要打印的内容,但随后您使用int() 将它们转换回整数。当您将带有前导零的字符串转换为 int 时,会省略前导零,留下一个 '0'。

      总之,您可以通过删除不必要的类型转换并为变量使用正确的类型来修复您的代码:

      a = '0'
      b = '0'
      b = a + b
      print(b)
      

      或者如果你需要 a 和 b 作为整数:

      a = 0
      b = 0
      print(str(a) + str(b))
      

      【讨论】:

        【解决方案5】:

        如果您希望输出为“00”,请将 b 保留为字符串。当您将其转换为 int 时,Python 会对其进行简化并简单地打印一个 0。

        新代码:

        a = 0
        b = 0
        b = str(a)+str(b)
        print(b)
        

        【讨论】:

          【解决方案6】:

          这是因为在数学上 00 也意味着 0。所以当将其转换为 int() 类型时,它只是将其视为 0。

          所以在 print 语句中不要转换成 int() 让它在字符串中。

          所以打印(str(a)+str(b))

          【讨论】:

            猜你喜欢
            • 2011-02-03
            • 1970-01-01
            • 2015-06-03
            • 1970-01-01
            • 1970-01-01
            • 2018-05-14
            • 1970-01-01
            • 1970-01-01
            • 2011-02-07
            相关资源
            最近更新 更多