关于python:我正在尝试学习如何编写循环,但它似乎无法输出到控制台上

I'm trying to learn how to write a loop but it doesn't seem to print to the console

我正在练习python,我正试图编写一个循环,但当我运行它时它不会打印出来。我正在通过jupyter笔记本使用python 2.7。当我运行代码时,它所做的就是调出另一个内核,但不打印任何内容。

1
2
3
4
5
6
def main():
    x = 0

    while (x < 5):
        print (x)
        x = x + 1


您已经定义了函数,但是现在您必须告诉Python运行它!

你所要做的就是这样称呼它:

1
2
3
4
5
6
7
def main():
    x = 0

    while (x < 5):
        print (x)
        x = x + 1
main() #This is calling a function

另外,您可能希望将您的x = x + 1行更改为x += 1。它们是等价的,但这样更整洁,这样就省去了输入两次变量的麻烦。

在jupyter笔记本中(或在cmd的交互模式下),您也可以在按下shift+enter并再次调用main()后执行此操作。


我猜你和C或者它的一个亲戚一起工作过,程序的入口点是对main的调用。在Python中不是这样的。python和许多脚本语言一样,从上到下运行文件,并且您的文件包含一个要执行的任务:define一个名为main的函数。使用这种函数的脚本的传统做法是在底部放置一个测试来调用它,允许在导入代码和作为程序运行代码之间进行选择:

1
2
if __name__ == '__main__':
    main()

有了这个小结尾,您的程序实际上应该运行main函数。

你的程序中也有一些其他的C-ISM。python在whileif测试中不需要括号,我们有一个更方便的for,它使用迭代器而不是整数进行操作。当需要整数时,range比较方便:

1
2
for x in range(5):
    print(x)

如果您运行的是python 2,那么print是一个不需要括号的语句,但它是python 3中的一个函数,所以我保留了它们。


在代码中,您定义了一个函数main(),但从未调用它。要解决这个问题,要么从单元中删除def main(),也就是说,只需执行要运行的代码即可。

1
2
3
4
x = 0
while (x < 5):
    print (x)
    x = x + 1

或者调用函数main()

1
2
3
4
5
6
7
def main():
    x = 0
    while (x < 5):
        print (x)
        x = x + 1

main()

删除def main():并在while循环之前指定x=0即可删除main函数。