为什么用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.7k
2 个回答

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

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)

运行结果

新手上路,请多包涵
def num(n):
 for i in range(2,n):
    if n %i == 0:
        return 0
    else:
        return n

# a = int(input())
# b = int(input())
a = 10
b = 50
s = 0
result = []
for n in range(a,b+1):
    if(num(n) != 0):
        result.append( num(n))
        s += num(n)

if __name__ == '__main__':
    print(result)
    print(s)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题