关于python:错误“无法隐式地将’int’对象转换为str”

Error “Can't convert 'int' object to str implicitly”

本问题已经有最佳答案,请猛点这里访问。

我刚开始自动化这些无聊的东西,我在第一章。

1
2
3
4
myname = input()
print ('It is nice to meet you,' + myname)
lengthofname = len(myname)
print ('your name is this many letters:' + lengthofname)

我运行这个,它给了我Can't convert 'int' object to str implicitly。我在第3行的推理是,我希望将变量myname转换为整数,然后插入第4行。

为什么这是一种错误的编码方式?


当您使用print ('your name is this many letters:' + lengthofname)时,python试图向字符串添加一个整数(当然这是不可能的)。

有三种方法可以解决这个问题。

  • 埃多克斯1〔3〕
  • 江户十一〔四〕号
  • 埃多克斯1〔5〕

  • 您有问题,因为+可以添加两个数字或连接两个字符串—您有string + number,所以您必须先将数字转换为字符串,然后才能连接两个字符串—string + str(number)

    1
    print('your name is this many letters:' + str(lengthofname))

    但是,您可以运行print(),使用许多用逗号分隔的参数(类似于其他函数),然后python会在print()显示这些参数之前自动将它们转换为字符串。

    1
    print('your name is this many letters:', lengthofname)

    你只记得print会在参数之间增加空格。(你可以说"逗号加空格",但打印可以。)


    您的代码似乎是python 3.x。下面是正确的代码;只需在print期间将lengthofname转换为字符串即可。

    1
    2
    3
    4
    myname = input()
    print ('It is nice to meet you,' + myname)
    lengthofname = len(myname)
    print ('your name is this many letters:' + str(lengthofname))