这种局部变量是什么意思,我感觉我没有啊

def fact(n):
if n==1 and n==2:
s=1
else:
for i in range(2,n):
if n%i==0:
s=0
break
else:
s=1
if s==1:
return n
k=int(input())
for i in range(1,k+1):
if fact(i)!=None:
print(fact(i))

img

img

if n==1 and n==2:

and是逻辑与, n不可能等于1又等于2,要改成 or

否则n为1时。s没有赋值。if s==1:读取s时就出错

你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)

def fact(n):
    if n==1 or n==2:
        s=1
    else:
        for i in range(2,n):
            if n%i==0:
                s=0
                break
            else:
                s=1
    if s==1:
        return n

k=int(input())
for i in range(1,k+1):
    if fact(i)!=None:
        print(fact(i))

你这个缩进乱啊,s=0,s=1,return n都得再往里一层啊。还是你贴错了啊