Python简化部首的工作进展不顺利

Python简化部首的工作进展不顺利,python,Python,我有一个程序,返回16的平方根为4.0;但是,它随后添加了1.0。当我尝试输入28时,它返回5.0 1.12而不是2(7)(我不知道如何输入平方根符号),如果我输入197,它返回14.0 1.00510204082而不是(197)。在解决如何实现正确输出方面的任何帮助都将不胜感激,以下是代码: from math import modf from math import sqrt #Establish input A = int(raw_input("Enter the number under

我有一个程序,返回16的平方根为4.0;但是,它随后添加了1.0。当我尝试输入28时,它返回5.0 1.12而不是2(7)(我不知道如何输入平方根符号),如果我输入197,它返回14.0 1.00510204082而不是(197)。在解决如何实现正确输出方面的任何帮助都将不胜感激,以下是代码:

from math import modf
from math import sqrt
#Establish input
A = int(raw_input("Enter the number under the radical:"))
#Input taken, setup math
B = (A + 1)
C = sqrt(B)
#seperate parts
Fractional, Integral = modf(C)
Fractional1, Integral1 = modf(A / (Integral**2))
def Intg(Integral):
    while Fractional1 == Fractional1:
        if Fractional1 == 0 and (A / (Integral**2)) == 1:
            print (Integral)
            return Integral
        else:
            Integral = (Integral - 1)
if Integral == 1:
    print (A / (Integral**2))
elif not Integral ==1 or (Fractional1 == 0 and (A / (Intergral**2)) == 1):
    print Integral, (A / (Integral**2))

请注意,您在下一行中拼错了整数:

如果不是整数==1或(分数L1==0和(A/(整数**2))==1):

在输出中使用部首
print(“答案是“+u'\u221a'+str(int(squared)))

在您输入16作为问题的实例中,Integral=4,这是

elif非整数==1或(分数l1==0和(A/(整数**2))==1):

在这种情况下,您的代码打印出整数和A/整数**2

打印积分,(A/(积分**2))

A=16;积分**2=16;16/16=1,代码打印4和1

当您输入28时,您的分数1将始终为零,因为在python中进行除法时,您总是得到一个整数。“28/9变为3.0,而不是3.1111111…”您应该使用模数运算28%9=1,以获得所需的分数或余数,而不是使用modf


积分1=A/积分**2
分数L1=A%积分**2
但是,这并不能为您提供正确的解决方案。你得到5是因为“sqr(28)=5.29150262..”你想要一个7。用平方根函数是无法得到的。它确实给了你们一个近似值,你们可以用它来更好地猜测你们的答案应该是什么。在5的基础上迭代一些完美的正方形,你会得到你想要的答案。这和你在纸上解决这个问题时做的一样


答案=“”
对于范围(2,整数)+1)内的数字:
打印号码
rem=一个%1的数字**2
如果不是rem:
答案='答案是'+str(数字)+u'\u221a'+str(数字**2)
如果没有,请回答:
打印('答案是'+u'\u221a'+str(A))
其他:
打印答案
这个打印出“2”√7”表示输入28的答案。它也会打印出来√197到您的输入197。我正在为自己的项目构建此功能,您可以在github上看到此功能“”