今天我下载了一个python来做一些简单的测试,对我来说奇怪的是python的if-else语句没有括号。
那么如何证明一个语句属于哪个分支?在我的测试中,当我更改缩进时,结果是不同的。 (b = b * 2)这是否意味着python根据用户的编码风格确定语句?那么如果用户不遵循缩进规则呢?
a = 10
b = 20
i = 0
while i<5 :
if (a < 9) :
if (a < 5) :
b = b - 1
else :
b = b + 1
b = b*2
a = a - 1
i = i + 1
print (a, b, i)
a = 10
b = 20
i = 0
while i<5 :
if (a < 9) :
if (a < 5) :
b = b - 1
else :
b = b + 1
b = b*2
a = a - 1
i = i + 1
print (a, b, i)
答案 0 :(得分:4)
那么如果用户不遵循缩进规则呢?
编码器必须遵循适当的缩进。唯一的另一个选择是代码无法正常工作(或偶然工作,但这本身并不是真正的选择)。
答案 1 :(得分:1)
缩进是Python语法的一部分。
丢弃缩进与丢弃C中的{ }
没什么不同(即最终代码损坏或不正确)
为什么呢?这个问题在Design and History FAQ,
中得到了解答Guido van Rossum认为使用缩进进行分组是 非常优雅,为平均的清晰度做出了很大贡献 Python程序。一段时间后,大多数人都会学会喜欢这个功能。
由于没有开始/结束括号,因此不会产生分歧 在解析器和人类读者感知的分组之间。 偶尔C程序员会遇到像这样的代码片段 这样:
if (x <= y) x++; y--; z++;
如果条件为真,则仅执行x ++语句,但是 缩进导致你不相信。即使是有经验的C. 程序员有时会长时间盯着它,想知道为什么是y 即使对于x>减少也是如此收率
因为没有开始/结束括号,所以Python不太容易发生 编码式冲突。在C中有许多不同的放置方式 大括号。如果您习惯于阅读和编写使用其中的代码 风格,你会在阅读时感到至少有点不安(或者是 需要写另一种风格。
许多编码样式将开始/结束括号放在一行上。 这使程序更长,浪费宝贵的屏幕 空间,使得更难以对程序进行良好的概述。理想的情况下, 一个功能应该适合一个屏幕(例如,20-30行)。 20行 Python可以比20行C做更多的工作。这不仅仅是 由于缺乏开头/结尾括号 - 缺乏声明和 高级数据类型也是负责任的 - 但是 基于缩进的语法肯定有帮助
此外,History of Python还有一个关于缩进语法
的起源的故事答案 2 :(得分:0)
这就是为什么在if语句之后你放了一个冒号。在那之后,你做了我所谓的“缩进”,基本上你在下一行之后放置一个空格(或者你想要多少空格),然后在if语句中输入你想要运行的代码。如果你没有插入空格,那么python会出现错误,因为你添加了一个if语句,所以它希望你有一些缩进。 例如:
if 4<7:
print("Hello")
此外,没有缩进规则。它可以是你想要的那么多行,但通常因为你希望你的代码可以被人类读取,所以我将缩进任何代码的最大空格是4.