美文网首页
Python学习:'<=' not supported betw

Python学习:'<=' not supported betw

作者: 晨畿茨 | 来源:发表于2018-06-28 18:05 被阅读0次

    学习Python函数过程中跟着例子敲,运行之后出现错误。

    '<=' not supported between instances of 'NoneType' and 'int'
    

    代码如下:

    # 使用filter 赛选素数
    # 生成素数
    def generate_shu():
        n = 1
        while True:
            n = n + 2
            yield n #正确的写法
            #yield 错误的写法
    
    
    # 筛选规则
    def filter_rule(n):
        return lambda x: x % n == 0;
    
    
    # 取出数据,进行筛选
    def filter_data():
        yield 2  # 表示先返回一个2 但函数还会继续执行下去
    
        it = generate_shu()
    
        while True:
            n = next(it)
            yield n
            it = filter(filter_rule, it)
    
    
    # 测试
    for n in filter_data():
        if n <= 1000:
            print(n)
        else:
            break
    
    

    在运行该代码时候报错,如下

    '<=' not supported between instances of 'NoneType' and 'int'
    
    表示在遍历filter_data集合时 n与1000比较过程中,n出现了None类型

    n的值由filter_data生成,filter_data由generate_shu生成,

    查看代码发现generate_shu的返回值yield 没有返回值.

    def generate_shu():
        n = 1
        while True:
            n = n + 2
            #yield n #正确写法
            yield #错误写法
    

    因此,再次遇到

    '<=' not supported between instances of 'NoneType' and 'int'
    

    比较符与None类型进行比较的时候,要分析一下数据的可靠性。

    OK。

    相关文章

      网友评论

          本文标题:Python学习:'<=' not supported betw

          本文链接:https://www.haomeiwen.com/subject/xnrnyftx.html