Python含if语句的简单代码报错问题求助
问题描述
我正在学习Python,跟着YouTube上的老师做计算学生平均分的练习,代码和老师的完全一致(老师运行正常,其中Nombre为str类型,Promedio为int类型),但我运行时出现错误。
运行代码
print("Sistema particular para calcular el promedio de un alumno") Nombre = input("Para comenzar, cual es su nombre?: ") Matemáticas = int(input(Nombre + " cual es tu calificación de matemáticas?: ")) Química = int(input(Nombre + " cual es tu calificación de química?: ")) Biología = int(input(Nombre + " cual es tu calificación de biología?: ")) Promedio = (Matemáticas + Química + Biología) // 3 if Promedio >= 6: print("Felicidades " + Nombre + " ’aprobaste’ con un promedio de: " + Promedio) print("Fin.")
报错信息
print("Felicidades " + Nombre + " ’aprobaste’ con un promedio de: " + Promedio) TypeError: can only concatenate str (not "int") to str
变量Nombre是str类型,Promedio是int类型,和老师的一致,但运行报错,请求解决。
解决方案
Python不允许直接用+拼接字符串(str)和整数(int),报错的根源就是这一点——你把int类型的Promedio直接和字符串文本拼接,违反了语法规则。
以下三种方法都能解决问题:
类型转换法:用
str()把整数转为字符串后再拼接
修改后的print语句:print("Felicidades " + Nombre + " ’aprobaste’ con un promedio de: " + str(Promedio))f-string写法(推荐):Python 3.6及以上版本支持,语法简洁直观
修改后的print语句:print(f"Felicidades {Nombre} ’aprobaste’ con un promedio de: {Promedio}")format()方法:兼容性强,适合所有Python版本
修改后的print语句:print("Felicidades {} ’aprobaste’ con un promedio de: {}".format(Nombre, Promedio))
至于老师的代码能运行的原因,大概率是你漏看了老师代码里的类型转换步骤,或者老师使用了非常老旧的Python版本(这种情况极少)。
内容的提问来源于stack exchange,提问作者Rafael López
相关产品推荐
相关产品推荐

