【问题标题】:Can't convert integer to string [duplicate]无法将整数转换为字符串 [重复]
【发布时间】:2014-04-18 16:23:20
【问题描述】:


我对我的 Python 程序遇到的这个问题有点困惑。这是一个非常简单的程序,但它不断出现问题。请允许我向您展示代码...

x=int(input('Enter number 1:'))
y=int(input('Enter number 2:'))
z=x+y
print('Adding your numbers together gives:'+z)

现在,这个程序,当我运行它时,它一直说“TypeError:无法将'int'对象隐式转换为str”。

我只想让它正常运行。 有人可以帮忙吗?
谢谢。

【问题讨论】:

  • 查看您的input 行并找出明显的区别...
  • @TomFenech 这不是一个好的复制品。标题相似,但问题却大不相同。
  • @JohnKugelman 我同意你的观点。

标签: python


【解决方案1】:

问题很明显,因为您无法连接 strint。更好的方法:您可以用逗号分隔字符串和print 的其余参数:

>>> x, y = 51, 49
>>> z = x + y
>>> print('Adding your numbers together gives:', z)
Adding your numbers together gives: 100
>>> print('x is', x, 'and y is', y)
x is 51 and y is 49

print 函数会自动处理变量类型。以下也可以正常工作:

>>> print('Adding your numbers together gives:'+str(z))
Adding your numbers together gives:100
>>> print('Adding your numbers together gives: {}'.format(z))
Adding your numbers together gives: 100
>>> print('Adding your numbers together gives: %d' % z)
Adding your numbers together gives: 100

【讨论】:

    【解决方案2】:

    你应该把最后一行改写为:

    print('Adding your numbers together gives:%s' % z)
    

    因为您不能在 Python 中使用 + 符号来连接 stringint

    【讨论】:

      【解决方案3】:

      你的错误信息告诉你到底发生了什么。

      z 是一个int,您正试图将它与一个字符串连接起来。在连接它之前,您必须先将其转换为字符串。您可以使用str() 函数来做到这一点:

      print('Adding your numbers together gives:' + str(z))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-31
        • 1970-01-01
        • 2010-11-21
        • 2013-10-06
        • 2012-10-22
        相关资源
        最近更新 更多