Python简化部首的工作进展不顺利
我有一个程序,返回16的平方根为4.0;但是,它随后添加了1.0。当我尝试输入28时,它返回5.0 1.12而不是2(7)(我不知道如何输入平方根符号),如果我输入197,它返回14.0 1.00510204082而不是(197)。在解决如何实现正确输出方面的任何帮助都将不胜感激,以下是代码: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
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上看到此功能“”