使用python中的过程中,有一个现象有些困惑,就是python中好像没有括号。
没有括号带来一个问题,假如是个for循环体,那循环的作用域怎么定义?for循坏以下的代码,哪几行是属于for循环体的在实践过程中,感觉python是通过程序代码每行的缩进来分辨层次关系的,先看第一个例子:
For循环里面组织5条曲线的数据,plt和for顶格写,plt和for层次结构一致,此时程序认为plt.show不属于for循环体,它和for循环体的是同等的并列关系。可以看到输出的曲线,plt.show调用了1次,输出了5条曲线。
再来看第二个例子:
plt.show()缩进了几格,本程序缩进使用的都是空格键,缩进的位置和for循环体内的语句相同,可以看到,此时python认为plt.show()是循坏体的一部分,即使plt.show()上面空了一行,依然没有改变plt.show()属于for循环体的事实。程序调用了plt.show()5次,输出了5张图,限于屏幕尺寸显示了2张。
可以看到,没有用括号,只是代码缩进的位置不一样,程序结构发生了变化。
又做了一个实验,如果plt.show()既没有顶格写,又没有缩进那么多,会如何?
如图所示:plt.show()缩进了一格,程序直接报错了。
之前使用的语言,代码缩进只是书写规范以及美观,并不影响执行的结果。Python中似乎使用缩进来完成了括号的功能。
个人的实验和看法,欢迎大家交流和指正。