Python 无限除以2
我只是python的初学者。我试图制作一个脚本,将一个数字(用户输入)无限除以2。我的意思是,如果用户输入,它应该像这样划分: "40/2 20/2 10/2 5/2 2.5/2 ..." 我的代码如下所示Python 无限除以2,python,python-3.x,while-loop,infinite-loop,division,Python,Python 3.x,While Loop,Infinite Loop,Division,我只是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) print('请插入一个数字') num=输入() num=浮点(num) while(nu
print ('please insert a number')
num = input()
num=float(num)
while(num<1000):
print(num/2)
print('请插入一个数字')
num=输入()
num=浮点(num)
while(num首先,应该在while中更新num,如果希望循环在达到0时停止,那么应该将其作为while语句的条件
while num >= 0:
num /= 2
print(num)
永远循环输入没有多大意义,因为您将陷入一个无限循环中,即使它有一个点,您最终也会得到一个浮点类型0.0
,因为此操作变为0
如果您想让用户将提供的数字除以2 n倍,下面是一个简短的程序:
首先,您需要让用户给您他想要分割的数字:
number=int(输入(“插入要除以2的数字:”)
下一步,你要问你想要除以2的次数:
n=int(输入(“您想将数字除以2的次数:”)
注意input
之前的int
——它们将转换input
函数int
类型给出的str
类型。如果一次看起来太多,您可以这样做:
n = input("How many times you want to divide the number by 2?: ")
n = int(n)
现在,您可以编写逻辑。我们可以使用**
运算符首先,将2
提高n
次幂,然后,除以数字(记住数学运算顺序):
数字242
除以9
次的输出示例:
0.47265625#242/2**9
您可以通过始终为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
你想要的输出是什么?我猜这不是一个无限循环。@jpp让我们假设用户输入是40。输出应该是这样的:40 20 10 5 2.5 1.75等等,在无穷大中,你的程序永远不会结束?@jpp是的,这就是重点。我这么做只是因为我很好奇无限除以2会是什么样子。注意执行num/2
只会给出该操作的结果。它不会更改num
的值。要执行此操作,必须在循环中显式覆盖num
。这不是我试图做的,而是谢谢。我的目标是创建无限循环,不断分割输入。输出是:插入要分割的数字:20回溯(最后一次调用):文件“C:/Users/agama/Desktop/programowanko/python/dobre.py”,第2行,while(true):NameError:name'true'未定义!在循环的某个点上,它输出0.0。我能在输出=0.0时以某种方式结束循环吗?@MiłoszMazurek,请参阅更新。如果这解决了您的问题,请不要忘记(左边绿色勾号)。
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