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

Python TypeError求助:NoneType与int无法执行除法运算

解决TypeError: unsupported operand type(s) for /: 'NoneType' and 'int'错误

错误根源

你代码里的核心问题出在firstList的初始化和填充逻辑上:

  • firstList = [None] * 30 直接创建了一个包含30个None元素的列表
  • funcOne中用append添加随机值,新元素会被放在列表末尾,导致firstList实际是30个None + 1个随机整数的结构
  • funcTwo遍历整个firstList时,前30个None元素尝试执行i/2,自然触发类型错误,因为None不能和整数做除法运算

修复方案

根据你的需求(生成单个值存入firstList,再处理该值),提供两种可行修复方式:

方式一:修正firstList初始化逻辑(推荐)

直接把firstList初始化为空列表,避免预填充None:

from random import randint
import random

finalList = [None] * 100
firstList = []  # 改为空列表,不再预填充None
secondList = []

def funcOne():
    global firstList
    # 无需循环,直接添加单个随机值
    firstList.append(random.randrange(11,12,1))
    return firstList

def funcTwo():
    global finalList, secondList
    finalList[0] = firstList.copy()  # 用copy避免后续修改firstList影响finalList
    for i in firstList:
        secondList.append(i / 2)
    # 修正整数加列表的错误:给secondList每个元素加5
    finalList[1] = [num + 5 for num in secondList]
    print(finalList)  # 移到return前,否则不会执行
    return finalList

funcOne()
funcTwo()

方式二:保留firstList结构,过滤无效元素

如果你确实需要firstList保留30个位置,遍历的时候只处理非None的元素:

from random import randint
import random

finalList = [None] * 100
firstList = [None] * 30
secondList = []

def funcOne():
    global firstList
    # 替换某个位置的None,而不是append(比如替换第一个位置)
    firstList[0] = random.randrange(11,12,1)
    return firstList

def funcTwo():
    global finalList
    finalList[0] = firstList
    # 只遍历非None的元素
    for i in firstList:
        if i is not None:
            secondList.append(i / 2)
    # 修正整数加列表的错误
    finalList[1] = [num + 5 for num in secondList]
    print(finalList)
    return finalList

funcOne()
funcTwo()

额外注意点

  • funcTwo中原代码的5 + secondList会触发新错误,因为整数不能直接和列表相加,改成列表推导式给每个元素加5才符合逻辑
  • return finalList之后的print(finalList)永远不会执行,必须把print移到return语句之前
  • 操作全局变量时,要确保所有被修改的全局变量都用global声明(比如secondList),否则会被当作局部变量处理

内容的提问来源于stack exchange,提问作者Moonlyte Demon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 13:10:24