You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 01:13:15