Python TypeError:只能将str(而不是“int”连接到str-(新学员)

Python TypeError:只能将str(而不是“int”连接到str-(新学员),python,concatenation,Python,Concatenation,这可能是最简单的修复方法之一,但我已经学习python大约一天了,我无法理解这个错误。我的代码如上所述。我试着用3号线 age = input("Enter your age: ") print("You are " +age+ " years old.") add_age = input("How much older do you want to be?:") new_age = int(age + add_age) print("Congrats! You are now " +new_a

这可能是最简单的修复方法之一,但我已经学习python大约一天了,我无法理解这个错误。我的代码如上所述。我试着用3号线

age = input("Enter your age: ")
print("You are " +age+ " years old.")
add_age = input("How much older do you want to be?:")
new_age = int(age + add_age)
print("Congrats! You are now " +new_age+ " years old!")
不带int(),但它返回相加的两个文本,而不是数字输入

希望有人能帮助我

提前谢谢


编辑:哎哟,粗野的人群。。。新的学习者和网站的用户,认为我在问一个重复的问题时会更宽容一点。在我的辩护中,我在提问之前搜索了我的问题,出现了一些话题,但它们并没有完全触及到我的转化问题,以实现我所需要的价值。也许是的,但是有很多信息,作为一个新的学习者,现在我觉得一切都乱七八糟。无论如何,对于重复的内容,我深表歉意。

在Python中,不能将字符串类型与int类型连接起来,必须先将int显式转换为字符串,然后才能执行此操作。使用以下命令:

new_age = int(age + add_age)

不过,非常感谢您的反馈。如果我的年龄输入为12,我的添加年龄输入为22。它将打印出“恭喜!你1222岁了!”然而,我的目标是打印出添加的输入。12+22=34这是因为输入返回字符串类型,所以当您执行
new\u age=int(age+add\u age)
操作时,它会将两个字符串“12”和“22”连接到“1222”中,然后再将其转换为int。在添加它们之前,您需要分别转换每个字符串。这将解决它:
new\u age=int(age)+int(add\u age)
Aha!非常感谢。我的问题解决了,不过,只是出于好奇,没有解决办法?您必须转换每个单独的字符串吗?据我所知,
input()
只返回python中的字符串,因此您始终需要显式转换为int或任何您期望的类型。另一种常用的方法是用int包装方法input(),如:
int(输入(“输入int”))
,但我不建议这样做,因为当用户输入另一种类型(如单词)时,您的程序将崩溃。最好将int作为字符串获取,计算类型,如果输入不是您想要的类型,则打印一条错误消息,除非在转换它之前。好的,太好了!谢谢您的帮助。这不是您问题的答案,但您应该在try/except中将强制转换包装为int,以便您的程序不会在非数字输入时崩溃。
int(age)+int(add_age)
。还可以根据答案中的建议进行更改,以便能够
打印
真棒,谢谢您的帮助@Kyle不担心它被标记为重复-有时这些实际上很有用,因为它们可以帮助用户找到正确的答案,谁可能会在这里登陆。它“关闭”问题的唯一原因是防止重复相同问题之外的相同答案。特别是对于一个新用户来说,问一个重复的问题是可以理解的。。。该网站的搜索功能臭名昭著。PS-欢迎使用堆栈溢出!
print("Congrats! You are now " +str(new_age)+ " years old!")