foriinrange(100):
ifx<(i+1)**2andx>i*i:
returni;
elifx==i*i:#若可直接得出,便直接输出。
print(i)
return-1;
elifx<0:#若为负数则提示。
print("请输入大于0的数字!")
return-1
defbijin(list):#用两个数字通过除二逐渐逼近这个结果
t=(list[0]+list[1])/2
ifx>t*t:
list[0]=t
else:
list[1]=t
x=float(input("请输入:"))
y=panduan(x)
ify!=-1:
list=[y,y+1]
whilelist[0]*1000000000000000%10==0:#这里可以实现小数后面位数的控制可以将1000000...替换为10**i可以通过i控制小数位数
bijin(list)
print(list[0])