Python 代码求两数间素数和时,为什么输出一堆等于号?

python 代码求两数间素数和时,为什么输出一堆等于号?

为什么求两数间素数和时会输出一堆等于号?

python 中的代码如下:

def num(n):
 for i in range(2,n):
    if n %i == 0:
        return 0
    break
 else:
    return n

a = int(input())
b = int(input())
s = 0
for n in range(a,b+1):
    s += num(n)
    if n == 1:
        print("he%d"%(s-1))
    else:
        print("he%d"%s)

运行这段代码后,却输出了一堆等于号,原因在于:

  • 函数 num 每次调用只能返回一个值,它返回素数或 0。

修改后的代码:

def num(n):
    return [n if n%i!=0 else (n-n) for i in range(2,n)]#条件if else生成列表推导式

a = int(input())
b = int(input())
s = 0
for n in range(a,b+1):
    for t in num(n):#此处原来返回none,none与int不能运算
        s += t#拆开返回的列表推导式进行运算
    if n == 1:
        print("he%d"%(s-1))#不同数据类型不能运算,先运算再合并字符串
    else:
        print("he%d"%s)

以上就是Python 代码求两数间素数和时,为什么输出一堆等于号?的详细内容,更多请关注其它相关文章!