当我编写此代码时:
n = int(input('num: '))
for i in range(2, n):
if n%i == 0:
a = i
print(a)
它可以正常工作。
但这会带来问题。它说
分配前引用的局部变量
a
def largestDivisor(n):
for i in range(2, n):
if n%i == 0:
a = i
return a
我该如何解决?
答案 0 :(得分:2)
如果您像largestDivisor(2)
这样打来电话,就不会进入for
,不会进入if
,而且永远也不会定义a
,请在开始时进行定义:
def largestDivisor(n):
a = 1
for i in range(2, n):
if n % i == 0:
a = i
return a
答案 1 :(得分:0)
如果条件“ n%i == 0”从不为真,则变量“ a”将不存在,因此必须在循环之前对其进行初始化。
def largestDivisor(n):
a = 1
for i in range(2, n):
if n%i == 0:
a = i
return a
答案 2 :(得分:0)
def largestDivisor(n):
a = 1
for i in range(2,n):
if n%i==0:
a=i
return a