为何两段Python字符串拼接代码一段报错一段可正常运行?
为什么一段字符串拼接代码报错,另一段却正常运行?
这个问题的核心原因很直白:Python里字符串只能和字符串类型的数据用+直接拼接,没法和整数(或其他非字符串类型)直接拼。咱们拆开两段代码好好说:
第一段报错代码的问题
先看这段会报错的代码:
greeting = "test" age = 24 print(greeting + age)
这里greeting是字符串类型,但age = 24是实打实的整数类型。Python的+运算符不会自动帮你做类型转换,碰到不同类型直接拼就会触发TypeError,告诉你没法把字符串和整数加在一起。要是想让这段代码跑通,得把整数转成字符串,比如改成print(greeting + str(age))。
第二段代码正常运行的原因
再看这段用input()的代码:
print("Please enter your name: ") myname = input() print("Your name is " + myname) print("Please enter your age: ") myage = input() print("Your age is: " + myage) print("Final Outcome is:") print(myage + " " + myname)
关键就在input()函数上——不管你输入的是文字还是数字,input()返回的结果永远是字符串类型。哪怕你输入的是24,myage里存的也是字符串"24",不是整数24。所以所有参与拼接的变量全是字符串类型,自然不会触发类型错误,能顺顺利利执行。
内容的提问来源于stack exchange,提问作者Gurmeet Kaur
相关产品推荐
相关产品推荐

