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

作者站长头像
站长
· 阅读数 12

为什么用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)
回复
1个回答
avatar
test
2024-07-13

因为函数每次调用只能有一个返回值,换成列表再计算吧!

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)

answer image

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容