Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无限除以2_Python_Python 3.x_While Loop_Infinite Loop_Division - Fatal编程技术网

Python 无限除以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

我只是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(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