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

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()

修正说明

  1. 把平均分的计算和打印操作拆分,避免用print()的返回值参与运算
  2. 先得到真实的平均分数值,再进行乘法和类型转换,逻辑更清晰
  3. 新增了最终LAG值的打印,方便验证结果

内容的提问来源于stack exchange,提问作者Yami Dancho

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 22:05:22