首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python如何知道语句属于if-否则的哪个分支?

python如何知道语句属于if-否则的哪个分支?
EN

Stack Overflow用户
提问于 2013-08-30 08:01:27
回答 3查看 1.2K关注 0票数 0

今天我下载了一个python来做一些简单的测试,奇怪的是python的if-else语句没有括号。

那么如何证明一条语句属于哪个分支呢?在我的测试中,当我改变缩进,结果是不同的。(b = b*2)是否意味着python根据用户的编码风格确定语句?那么,如果用户不遵循缩进规则怎么办?

代码语言:javascript
复制
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)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-30 14:14:12

缩进是Python语法的一部分。

放弃缩进与在C中丢弃{ }没有什么区别(也就是说,您最终得到的是损坏或错误的代码)

为什么?这个问题在设计与历史常见问题中得到了回答,

Guido认为,使用缩进进行分组是非常优雅的,对一般Python程序的清晰性有很大贡献。大多数人过了一段时间就会爱上这个功能。 由于没有开始/结尾括号,解析器所感知的分组和人工读取器之间不可能有分歧。有时C程序员会遇到这样的代码片段: 若(x <= y) x++;y-;z++; 如果条件为真,则只执行x++语句,但缩进会导致您不这么认为。即使是经验丰富的C程序员有时也会盯着它看很长时间,甚至对于x> y,也会想知道为什么y会减少。 因为没有开始/结束括号,Python不太容易发生编码风格的冲突。在C语言中,放置大括号有许多不同的方法。如果您习惯于阅读和编写使用一种样式的代码,那么在阅读(或要求编写)另一种样式时,您至少会感到有些不安。 许多编码样式将开始/结束括号放在一行中。这使得程序长得多,浪费了宝贵的屏幕空间,使得很难对程序进行良好的概述。理想情况下,一个功能应该适合在一个屏幕上(例如,20-30行)。与20行C相比,20行Python可以做更多的工作,这不仅仅是因为缺少开始/结束括号--缺乏声明和高级数据类型也是原因--但是基于缩进的语法确实有帮助。

此外,Python的历史还有一个关于缩进语法起源的附加故事。

票数 1
EN

Stack Overflow用户

发布于 2013-08-30 08:03:28

那么,如果用户不遵循缩进规则怎么办?

编码器必须遵循适当的缩进。唯一的其他选择是代码不能正常工作(或者是偶然的,但这本身并不是一种选择)。

票数 4
EN

Stack Overflow用户

发布于 2013-08-30 13:52:17

这就是为什么在if语句之后放一个冒号。在此之后,执行我所说的“缩进”操作,基本上是在下一行之后放置一个空格(或需要多少空格),然后键入在if语句中要运行的代码。如果不插入空格,python将产生一个错误,因为您添加了一个If语句,因此它希望您有某种缩进。例如:

代码语言:javascript
复制
if 4<7:
 print("Hello")

此外,也没有缩进规则。它可以是任意多行,但通常,由于您希望您的代码是可读的,我会缩进任何代码的最大空格为4。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18527870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档