为什么是;如果;及;而";在我下面的python-3.x代码中不可互换? a=1 b=a+1 c=a+b x=0 c

为什么是;如果;及;而";在我下面的python-3.x代码中不可互换? a=1 b=a+1 c=a+b x=0 c,python,python-3.x,Python,Python 3.x,上面的代码可以按照我的要求工作,但我需要下面的代码才能工作。我想使用If/Else函数,但是,只能让While函数为我运行 a=1 b=a+1 c=a+b x=0 while c < 5: c=c+1 x=x+1 if c == 5: print ("\n It took this many loops to make C=5: ",x) 如果c

上面的代码可以按照我的要求工作,但我需要下面的代码才能工作。我想使用If/Else函数,但是,只能让While函数为我运行

a=1
b=a+1
c=a+b
x=0 

while c < 5:
    c=c+1
    x=x+1
if c == 5:
    print ("\n It took this many loops to make C=5: ",x)
如果c<5:
c=c+1
x=x+1
如果c==5:
print(“\n需要这么多的循环才能使C=5:”,x)

我尝试了几种不同的方法,但如果能对它为什么不运行给出一些有用的解释,我将不胜感激。

首先,
if
else
,而
不是函数。它们是语句(更准确地说,是流控制语句)

核心区别在于
if
在满足条件时运行缩进代码块一次(计算结果为
True
),而
while
只要满足条件,就反复运行代码块


无论条件是否仍然满足,
if
块在运行一次后将通过。如果在一个循环结束时仍然满足条件,则
while
块将返回并重复。

我建议初学者使用。我在通过阅读学习方面很差,但感谢您的参考。使用
if
确实“有效”,因为代码编译良好且运行良好。但是,如果
while
循环的主体只运行一次(通过
if
),则不符合第二个循环的条件,因此它不会打印任何内容。不清楚为什么要使用
if
而不是
while
,因此我不确定是否有合理的方法来解决“问题”。如果根本没有循环,就无法计算循环数。
if c < 5:
    c=c+1
    x=x+1
if c == 5:
    print ("\n It took this many loops to make C=5: ",x)