Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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代码根本没有输出?_Python_Python 3.x_If Statement_Debugging_While Loop - Fatal编程技术网

为什么我的python代码根本没有输出?

为什么我的python代码根本没有输出?,python,python-3.x,if-statement,debugging,while-loop,Python,Python 3.x,If Statement,Debugging,While Loop,我用python编写了一些代码来查看一个数字可以被一个数字除以多少次,直到它得到一个值 counter_var = 1 quotient = num1/num2 if quotient<1: print('1 time') else: while quotient >= 1: quotient = num1/num2 counter_var = counter_var + 1 print(counter_var) 计数器变

我用python编写了一些代码来查看一个数字可以被一个数字除以多少次,直到它得到一个值

counter_var = 1
quotient = num1/num2

if quotient<1:
    print('1 time')
else:
    while quotient >= 1:
        quotient = num1/num2
        counter_var =  counter_var + 1
    print(counter_var)
计数器变量=1
商=num1/num2
如果商=1:
商=num1/num2
计数器变量=计数器变量+1
打印(计数器变量)

它不会结束进程,但也不会给出任何输出。

您不会更改while循环中商的值。它保持不变。
如果我正确理解你的问题,它应该是商,而不是商,
在num1>num2的情况下,您将进入一个无止境的while循环,因此您将永远无法访问
打印(计数器变量)
代码片段我对您的代码做了一点更改,因为您总是将商定义为初始数字。相反,将商除以num2

counter_var = 1
quotient = num1/num2

if quotient<1:
    print('1 time')
else:
    quotient = num1/num2
    while quotient >= 1:
        quotient = quotient/num2
        counter_var =  counter_var + 1
    print(counter_var)
计数器变量=1
商=num1/num2
如果商=1:
商=商/num2
计数器变量=计数器变量+1
打印(计数器变量)

让我们用一个例子来分解您的代码:

第1节:所有好代码 让我们举一个例子

num1=20 num2=4 第1节。一切都很好。
商的值为
5.0
。所以它进入while语句。
将始终保持
5.0

你认为下一次计算的结果是什么?您没有更改
num1
num2
的值,因此它将继续为
5.0
。所以它进入了一个无止境的循环

如果您想更改代码,您必须弄清楚如何更改
num1
的值,以便它可以进一步分割

希望这能帮助您调试代码以获得正确答案。我会让你去想办法解决这个问题


提示:任何数字被自身除后将继续保持为1。你想看看你的while循环,做一个小小的改变。应该是
=

你写了一个无限循环!例如,如果将1作为num1的输入,将1作为num2的输入!所以这里的商取1!!所以你陷入了无限循环!我不明白你的计划我是说你想做什么!你必须先告诉我这个问题

商的值没有改变,所以循环永远在继续。例如,如果商是3,num1是18,num2是6。程序将进入else语句,然后继续执行while语句。它将18除以6,将商的值设置为3,并将计数器的值递增1。然后返回到循环的顶部,做同样的事情,因为商>=1,商的值永远不会改变,这导致循环永远继续

其他问题:

变量名不应该有下划线,并且应该是camelCased,这意味着它应该是counterVar。
另外,你应该有更多的描述性名称,而不是num1和num2。

无论你用
num1
除以
num2
多少次,结果都是一样的。我看不出当num1=20,num2=4时,商会是1.0。从5.0开始,一直保持5.0。的确,当num1=num2=1时,应该特别注意避免无限循环,但是这个答案不能准确地诊断询问者代码中发生了什么。
counter_var = 1
quotient = num1/num2

if quotient<1:
    print('1 time')
else:
    while quotient >= 1:
        quotient = num1/num2
        counter_var =  counter_var + 1
    print(counter_var)