Python 根的整数部分,不使用函数

Python 根的整数部分,不使用函数,python,Python,一个数字的平方根的整数部分的计算可以通过反复试验完成,从1开始,通过执行平方,直到结果小于或等于由根计算的起始值 下面的程序返回根的整数部分 def radice(x): z = 0 t = 0 while True: t = z*z if t > x: z -= 1 return z z += 1 radice(17) // 4 是否可以在不使用函数和中断的情况下编

一个数字的平方根的整数部分的计算可以通过反复试验完成,从1开始,通过执行平方,直到结果小于或等于由根计算的起始值

下面的程序返回根的整数部分

def radice(x):
    z = 0
    t = 0
    while True:
        t = z*z
        if t > x:
            z -= 1
            return z
        z += 1

radice(17) // 4
是否可以在不使用函数和中断的情况下编写它? 这是我的代码省略函数,但我不知道如何在没有
break

z = 0
t = 0
while True:
    t = z*z
    if t > x:
        z -= 1
        break
    z += 1
print 'The integer part of the root is: ', z
这应足以:

>>> int(17**0.5)
4
17**0.5
生成17的平方根,而
int
基本上删除了小数,剩下的是“根的整数部分”

在不使用任何函数的情况下,如果需要整数结果,则需要复杂的代码(如您自己的代码)。但是,如果浮动可以,那么您可以尝试以下方法:

>>> (17**0.5)//1
4.0

这本质上与
int
调用相同,但如果任何一方都是浮点,则将返回一个浮点。

参数是为了清晰起见,不是必需的

>>> (17**.5)-(17**.5)%1
4.0
好的,让我们逻辑地思考一下。 您不能使用
中断
,因此在循环时退出
的唯一方法是中断其条件。

如果它是
真的
,它就不能被破坏,因此我们必须考虑停止迭代的适当条件。这个条件已经在您的算法中使用:当
t>x
z*z>x
时退出。因此,继续迭代的条件应该是相反的,即,正如你所说的,一个数字的平方根的整数部分可以通过反复试验来完成,从1开始,通过执行平方,直到结果小于或等于由根计算的起始值。 说你可以不用函数和break语句来编写代码;代码如下:

n = input("insert a number: ")
r = 1
while (r * r <= n):
        r = r + 1

print  "the result is:", r -1
n=输入(“插入一个数字:”)
r=1

while(r*r我想使用while循环和for。目标是计算attests!@Volatility根的整数部分,问题的关键是仅用整数算术计算。OP试图解释这一点,但失败了(请看他在回答中的评论)。虽然你的答案很实用,但它没有考虑问题的家庭作业性质。@unkulunkulu很公平。虽然这是一个糟糕的家庭作业问题。@Volatility我试图更好地解释它。谢谢你的评论。你看到这个函数中的算法了吗?为什么不直接使用它而不使用函数本身呢?@u恩库伦库鲁我试过了,我更新了我的问题。这个问题也是关于
break
指令的。
n = input("insert a number: ")
r = 1
while (r * r <= n):
        r = r + 1

print  "the result is:", r -1