我只是python的初学者。我正在尝试制作一个将数字(用户输入)无限地除以2的脚本。我的意思是,如果用户输入,则应像这样对它进行除法: “ 40/2 20/2 10/2 5/2 2.5 / 2 ...” 我的代码如下:
print ('please insert a number')
num = input()
num=float(num)
while(num<1000):
print(num/2)
输出只是用户输入除以2,然后结果永远循环。 接下来我该怎么做才能编写我的代码?
答案 0 :(得分:2)
您可以通过始终为True
的条件构造无限循环,例如标量True
:
num = float(input('Please insert a number:\n'))
while True:
num /= 2
print(num)
实际上,这没有用。例如,您可以轻松地插入break
语句,以便在达到下限时停止循环。在这里,当float
值与0
不可区分时,结束循环。
num = float(input('Please insert a number:\n'))
while True:
num /= 2
print(num)
if num == 0:
break
初始输入为500
的示例:
Please insert a number:
500
250.0
125.0
62.5
...
3.06e-322
1.53e-322
8e-323
4e-323
2e-323
1e-323
5e-324
0.0
答案 1 :(得分:1)
永远不输入是没有意义的,因为您将陷入无限循环,即使有一点,您最终也将以浮点类型0.0
结束,因为操作转到0。
如果要让用户将提供的数字除以2 n次,可以使用以下简短程序:
首先,您需要要求用户提供您要除以的数字:
number = int(input("Insert the number you want to divide by 2: "))
接下来,您需要输入要除以2的次数。
n = int(input("How many times you want to divide the number by 2?: "))
请注意int
之前的input
-它们将转换str
函数input
类型给定的int
类型。如果这一次看起来太多了,您可以这样做:
n = input("How many times you want to divide the number by 2?: ")
n = int(n)
现在,您可以编写逻辑了。我们可以使用**
运算符,首先将2
提高n
次,然后将数字除(记住数学运算顺序):
answer = number / 2 ** n
print(answer)
数字242
除9
次的示例输出:
0.47265625 #242 / 2 ** 9
答案 2 :(得分:0)
首先,您应该在while内更新num,如果希望循环在达到0时停止,则应将其用作while语句的条件
<div id="flipbook">
<div class="hard"> Turn.js </div>
<div class="hard"></div>
<div> Page 1 </div>
<div> Page 2 </div>
<div> Page 3 </div>
<div> Page 4 </div>
<div class="hard"></div>
<div class="hard"></div>
</div>