Python TypeError求助:NoneType与float无法执行乘法运算
问题排查与解决
错误根源
你代码里的displayLAG方法犯了一个典型错误:print()函数的返回值是None,你把print()的结果直接拿来和0.25做乘法运算,自然会触发TypeError——NoneType和数值类型不能做乘法。
修正方案
先单独计算出Lab Activity的平均分,再按需打印,最后用计算好的平均分去计算权重后的LAG值:
import math class Prelim: def __init__(self): self.LA1 = int(input('Enter your grade in Lab Activity #1: ')) #100 self.LA2 = int(input('Enter your grade in Lab Activity #2: ')) #100 self.LA3 = int(input('Enter your grade in Lab Activity #3: ')) #100 def displayLAG(self): # 先计算平均分 avg_la = (self.LA1 + self.LA2 + self.LA3) / 3 # 打印平均分(这一步是输出,不影响后续计算) print(avg_la) # 计算权重后的LAG值 self.LAG = int(avg_la * 0.25) # 可按需打印最终的LAG值 print("Final LAG:", self.LAG) la1 = Prelim() la1.displayLAG()
修正说明
- 把平均分的计算和打印操作拆分,避免用
print()的返回值参与运算 - 先得到真实的平均分数值,再进行乘法和类型转换,逻辑更清晰
- 新增了最终LAG值的打印,方便验证结果
内容的提问来源于stack exchange,提问作者Yami Dancho
相关产品推荐
相关产品推荐

