为何integer无法与string相加?代码报TypeError及预期输出咨询
问题原因及解决方法
错误原因
- 类型不匹配:你把输入的
n转为了整数类型,而str1是字符串,Python不允许直接将整数与字符串做拼接操作,这会触发TypeError。 - 逻辑错误:循环变量是
i(从1到n),但你拼接的是n而非i——就算类型问题解决,输入5也会得到"55555",不符合你想要的"12345"预期。
修复方法
方法一:循环内转换类型拼接
直接在循环里把当前整数i转为字符串,再拼接到str1上:
n = int(input('Enter any number :')) str1 = "" for i in range(1, n+1): str1 += str(i) print(str1)
方法二:用join方法优化(更高效)
当n较大时,字符串直接拼接效率偏低,推荐使用join结合生成器表达式:
n = int(input('Enter any number :')) str1 = ''.join(str(i) for i in range(1, n+1)) print(str1)
内容的提问来源于stack exchange,提问作者Yash Kumar Panjwani
相关产品推荐
相关产品推荐

