我不能打印浮动
问题描述:
我想写我自己的平方根的代码,程序只能打印完美的正方形和没有小数点的根,这不是很有帮助。 我希望程序能够打印所有的根。我不能打印浮动
这是我迄今为止
while True:
def frange(start, stop, step=1):
i = start
while i < stop:
yield i
i += step
userInput=input("Enter a natural number:>>>")
userInput=int(userInput)
for i in frange(1,(userInput+1)/2):
if i*i==userInput:
print(i)
答
而不是做这个的:
userInput=input("Enter a natural number:>>>")
userInput=int(userInput)
这样做:
userInput = float(input("Enter a number:>>>"))
int
只允许整数,float
允许小数。
编辑:我也需要重新阅读你的问题
关于它的思考,很多你的代码是不必要的。您可以简单地执行:
userInput = float(input("Enter a number:>>>"))
root = userInput ** 0.5
print(str(root))
将def frange块移出while循环,并将int(userInput)更改为float(userInput),并且您很好! –
更好地阅读你的问题,你需要改变你的frange()函数来输出浮点数。你打印的i值是你的frange()函数的输出,它总是一个整数。即使你将它投入浮动,它仍然只是整数。 –
你的算法是一个蛮力搜索整数平方根,所以*当然*它只会打印完整平方的整数平方根。对于任意的平方根 - 你需要一个完全不同的方法,一个涉及例如牛顿的方法。或者 - 如果你不想重新发明轮子,只需使用'math.sqrt()'。顺便说一句,我怀疑你有任何麻烦*印刷*浮动,因此你的标题是误导。 –