错误"无法转换' int'隐含地反对str#34;

时间:2016-11-13 04:35:46

标签: python string python-3.x object

我刚开始Automate The Boring Stuff,我在第1章。

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行。

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

3 个答案:

答案 0 :(得分:3)

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

有3种方法可以解决此问题。

  1. print ('your name is this many letters:' + str(lengthofname))
  2. print ('your name is this many letters: ', lengthofname)
  3. print ('your name is this many letters: {}'.format(lengthofname))

答案 1 :(得分:2)

你有问题,因为+可以添加两个数字或连接两个字符串 - 你有string + number所以你必须先将数字转换为字符串才能连接两个字符串 - string + str(number) < / p>

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

但你可以运行print(),其中许多参数用逗号分隔 - 就像在其他函数中一样 - 然后Python会在print()显示它们之前自动将它们转换为字符串。

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

您只记得print会在参数之间添加空格 (你可以说“逗号增加了空间”,但打印就可以了。)

答案 2 :(得分:0)

您的代码似乎是Python 3.x.以下是更正后的代码;只需在lengthofname期间将print转换为字符串。

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