|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- def judge(number): # number 要测是不是质数的数
- if number == 1:
- print('这个数是质数')
- else:
- divisor = 2 # divisor 除数
- while divisor < number:
- if number % divisor == 0:
- answer = number / divisor # answer 除完的结果
- break
- divisor += 1
- if answer == 1 or answer < 1:
- return True
- else:
- return False
复制代码
报错是
- Traceback (most recent call last):
- File "<pyshell#0>", line 1, in <module>
- judge(5)
- File "D:\软件\python\judge.py", line 11, in judge
- if answer == 1 or answer < 1:
- UnboundLocalError: local variable 'answer' referenced before assignment
复制代码
本帖最后由 dlnb526 于 2020-2-10 22:08 编辑
错误信息:local variable 'answer' referenced before assignment
在代码中 - answer = number / divisor # answer 除完的结果
复制代码是对answer赋值,然而可能不运行它直接判断 - if answer == 1 or answer < 1:
复制代码此时还没有answer变量,故报错
希望对你有所帮助
- def judge(number): # number 要测是不是质数的数
- if number == 1:
- print('这个数是质数')
- else: ##########运行此条件
- divisor = 2 # divisor 除数
- while divisor < number:
- if number % divisor == 0:##########运行此条件则结尾break跳出循环
- answer = number / divisor # answer 除完的结果
- break
- divisor += 1
- if answer == 1 or answer < 1:##########否则运行此条件,此时没有answer
- return True
- else:
- return False
复制代码
|
|