python中的语句

这是我从《Learning the python》这本书中总结的

python中的语句_第1张图片

文章目录

  • 前言
  • python的常见语句
  • python语句和C语句的三个不同点
  • python为什么添加冒号
  • python为什么要去掉圆括号和花括号,以及封号
  • 去掉这些后,python怎么办以及为什么要这么办
  • python中的一些非常规操作
  • 总结

前言

python中概念的层次结构

  • 程序是由模块组成
  • 模块包含语句
  • 语句包含表达式
  • 表达式创造和处理对象

在开始之前,我要先说明一下,什么是语句,什么是表达式:表达式是表示值的式子,语句是操作值的式子。搞清楚这个概念之后,我们就正式进入今天的主题:python中语句的特点

python的常见语句

下面列举了一些python中的常用语句

语句 作用
赋值 创造名字
调用函数 使用函数
打印输出 打印对象
if/elif/else 选择行为
for/else Iteration
while/else General loops
pass Empty placeholder
break Loop exit
continue Loop continue
def Functions and methods
return Functions results
yield Generator functions
global Namespaces
nonlocal Namespaces (3.X)
import Module access
from Attribute access
class Building objects
try/except/ finally Catching exceptions
raise Triggering exceptions
assert Debugging checks
with/as Context managers (3.X, 2.6+)
del Deleting references

上面是我从《learning the python》这本书上抄写下来的python中的常用语句。关于每个语句的含义,前三句是描述性质的,所以我翻译了一下,后面是我们一眼就能看懂的,所以我就原模原样地抄写了下来。

python语句和C语句的三个不同点

从一个小例子看起

if (x > y) {
  x = 1;
  y = 2;
}

if x > y:
  x = 1
  y = 2

上面是分别用C和python写的两段代码,当我们比较这两种不同的代码的时候,我们的第一反应大概率上会是python语句更少,python使用了更少的语法组件来实现相同的目的,这也是python的设计宗旨之一:code less,create more。我们看到这两段代码的不同点主要在这几个地方:python比C少了圆括号和花括号,以及封号,但是却多了冒号。下面我将会介绍python之所以这样设计,是出于什么样的原因。

python为什么添加冒号

在C语言中,我们组织一个代码块是利用花括号来实现的,但是在python中却没有花括号了,想象一下,如果没有这个冒号,我们看到的将会是什么样的代码(我们很难快速确定代码块从哪里开始)

python为什么要去掉圆括号和花括号,以及封号

这个理由很简单:为了少打代码。我们这里主要讲一下python中去掉了这些语法组件后又添加了哪些额外的语法含义。

  • 去掉圆括号后:没有任何的语法含义增加,还是原模原样在哪里,当我们添加括号时,这也不会被认为是错误,但是最好不要这样做,因为这对你的键盘伤害很大
  • 去掉花括号:同样的理由,直接把花括号去掉就可以了,在C语言中,花括号用来组织代码块,在python中,我们通过等距缩进来组织代码块。
  • 去掉封号:当我们在不做任何特殊处理的情况下,一行的结束就标识一个语句的结束

去掉这些后,python怎么办以及为什么要这么办

python通过等距缩进的方式来组织代码块,具体地说就是,如果我们想标识一段语句是属于同一个代码块,那么我们就要把它们缩进相同的距离(但是不同的代码块之间可以采用不同的缩进距离),如下所示

if x > y :
    x = 1
    y = 2

说实话,这是我第一次真实地、发自内心地感受到python的简洁优雅,它把代码缩进风格上升到语法层次,强迫所有的程序员必须要按照这种对齐的风格来编码。在其它的语言中,比如C,由于我们采用花括号来确定一个代码块,一个花括号中的代码没有缩进的要求,所以,不同的程序员可能会有不同的缩进风格,在一个公司里面,一份代码一般都是经过好多人的传承才到你手中,如果他们的编码风格不一样,那么你将会看到下面的代码:

while(x > 0){
    ----;
    ----;
        ----;
        ----;
            ----;
----;
----;
}

看到这段代码有什么感受,其实我这种演示效果没有那么令人印象深刻,当看到真实的以这种风格编写的代码的时候,你可能会疯掉。

除此之外,下面这种情况也可以体现出python的优雅

if (x)
    if (y)
        statements1;
else
    statements2;

我们观察else,乍一看它是和if(x)配对的,但是实际上根据C中的就近配对原则,它是和if(y)配对的。

python中的一些非常规操作

按照前面的python语法模型:

  • 一行的结束标识着一个语句的结束
  • 嵌套代码块通过等长缩进进行组织关联

以上语法模型基本上已经覆盖了我们的日常使用,但是python还提供了一些特殊的机制以实现一些非常规操作
1、使用封号在一行编写多条语句

a = 1; b = 2; print(a + b)

2、使用圆括号、花括号、中括号实现一行语句多行编写(还有一种斜杠的老式方法,由于不好用,所以这里就不介绍了

mylist = [1111,
          2222,
          3333]
X = (A + B +
     C + D)

3、简单语句直接跟在冒号后面

if x > y: print(x)

总结

本次学习,让我进一步熟悉了python的概念层次模型,也就是一个Python程序的实体组成。通过比较python语句和C语句的区别,我进一步理解了python语言的设计哲学:Simple is better than complex.通过此次学习,我对python的感情又深了一层。

你可能感兴趣的:(python)