Python 平方根近似

Python 平方根近似,python,Python,我不熟悉Python和stackoverflow。我一直在尝试解决平方根近似的“while-loop”示例(主题5:问题9)。但是,我无法获得所需的输出。我不确定这个问题是否与循环或公式有关。问题是: 创建一个接受正数并返回2的函数 整数,使数字介于2的平方之间 整数。如果数字是平方,则返回相同的整数两次 整数的整数 示例: sqApprox(2) (1, 2) sqApprox(4) (2, 2) sqApprox(5.1) (2, 3) 这是我的密码: def sqApprox(num

我不熟悉Python和stackoverflow。我一直在尝试解决平方根近似的“while-loop”示例(主题5:问题9)。但是,我无法获得所需的输出。我不确定这个问题是否与循环或公式有关。问题是:

创建一个接受正数并返回2的函数 整数,使数字介于2的平方之间 整数。如果数字是平方,则返回相同的整数两次 整数的整数


示例:

sqApprox(2)
(1, 2)
sqApprox(4)
(2, 2)
sqApprox(5.1)
(2, 3)
这是我的密码:


def sqApprox(num):
i=0
minsq=1#设置下限
maxsq=minsq#集上界

而我*i这就是为什么您的代码会执行它的功能:

执行行
maxsq=minsq
后,这两个值都是1

当我们进入环路时

while i*i<=num:                     # set 'while' termination condition
    if i*i<=num and i >=minsq:  # complete inequality condition  
        minsq = i
    if i*i<=num and i <=maxsq:  # complete inequality condition
        maxsq = i
    i=i+1                       # update i so that 'while' will terminate

当循环执行完毕后,一个简单的测试涉及到
i-1
,足以确定返回的内容。

要格式化代码,请以一个空行开始,然后在每行代码的开头添加四个空格,然后在末尾保留一个空行。为什么不忘记
minsq
maxsq
,只返回
(i-1,i)
(i-1,i-1)
(取决于它是否是一个完美的正方形)?你所需要做的就是用
i*找到最后一个
i
,谢谢你的帮助。
while i*i<=num:                     # set 'while' termination condition
    if i*i<=num and i >=minsq:  # complete inequality condition  
        minsq = i
    if i*i<=num and i <=maxsq:  # complete inequality condition
        maxsq = i
    i=i+1                       # update i so that 'while' will terminate
 while i*i<=num: 
     if i >=minsq:  
         minsq = i
     if i <=maxsq:
         maxsq = i
     i=i+1
while i*i <= num:
    i += 1 #shortcut for i = i + 1