python - 如果是完美平方则返回 True/如果不是则返回 false
问题描述
我正在做一个关于代码战的练习,我应该找出一个数字是否是一个完美的正方形。我大部分时间都完成了代码,并且大部分时间都可以工作,但是当返回 False 时,我得到了错误的答案。
def is_square(n):
if n<0:
return False
if n == 0:
return True
if n>1:
for i in range(0,n):
if i*i==n:
return True
else:
return False
如果我删除最后一个 else 语句,4 和 25 返回 true,但是当我添加最后一个 else 语句时,它说 4 和 25 是 false。如果输入 27 同时保持 25 为真,我将如何修复它以便返回假?
解决方案
在循环return False
之后放置for
def is_square(n):
if n<0:
return False
if n == 0 or n == 1:
return True
if n > 1:
for i in range(0,n):
if i*i==n:
return True
return False
推荐阅读
- python - 为什么python输出不能正确保存
- javascript - 我如何在javascript中返回两个对象
- haskell - 为什么 GHC 在使用 Coercible 约束时会自相矛盾?
- apache-kafka - 如何解析包含 Union、Map、Array 等的嵌套 GenericRecord?
- ios - 使用未解析的标识符“地图”SwiftUI
- python - 终止循环的问题
- python - 用 python 解决一个 3x3 青蛙谜题
- wordpress - Wordpress 网站翻译 - 翻译字符串的严重困难
- c# - C#为什么在随机数中得到一个零数
- php - 巨大的下拉列表和多选框