python - Python为什么我定义的输出是列表的函数不断收到非类型错误
问题描述
我定义了一个函数,它的输出是打印一个列表。然后我想将该列表与 len(l2) 进行比较,这是我的代码中的其他列表,但我一直收到此错误,即我定义的函数的输出是 NoneType 并且不能与整数进行比较我该如何解决这个问题?我是编程新手,所以请简单回答
l = []
for i in range(0, 3):
x = int(input())
l.append(x)
def prime_counter(n):
b = 1
l1 = []
while b <= n:
k = 0
if n % b == 0:
j = 1
while j <= b:
if b % j == 0:
k = k + 1
j = j + 1
if k == 2:
l1.append(b)
b = b + 1
for i in range(0, len(l)):
l2 = []
if len(prime_counter(l[i])) > len(l2):
l2.extend(prime_counter(l[i]))
print(l2)
解决方案
当函数中没有任何return
语句时,None
会自动返回。因此,您需要从函数的调用者可以进一步使用的函数中返回一些对象。
这发生在您的prime_counter
功能中;您应该从中返回l1
列表,但您没有返回任何保证len(None)
,因为None
单例没有任何与之关联的长度。
您需要从以下位置返回l1
列表prime_counter
:
def prime_counter(n):
b = 1
l1 = []
while b <= n:
...
...
return l1
推荐阅读
- python - 过滤后在 Pandas 数据框中获取 KeyError
- node.js - 如何访问登录用户的名称?
- javascript - 如何按键合并两个对象数组并将唯一键保留在单个对象数组中?
- swift - SwiftUI:在 macOS 应用程序中更改“关于视图”
- reactjs - uri 源 React-Native 未显示图像
- selenium - 使用 Python Selenium 插入文本。.send_keys() 不起作用
- django - SearchFilter:只要没有给出 ?search 输入,就返回 .none()
- python - 电子表格.get 方法不返回任何实际值,只是格式化
- python - 序列化对象运行过多的 SQL 查询
- javascript - 如何使这个“转换”按钮将文本从输入转换为二进制?