我刚开始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行。
为什么这是一种错误的编码方式?
答案 0 :(得分:3)
当你有print ('your name is this many letters:' + lengthofname)
时,python试图在字符串中添加一个整数(当然这是不可能的)。
有3种方法可以解决此问题。
print ('your name is this many letters:' + str(lengthofname))
print ('your name is this many letters: ', lengthofname)
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))