1.语句:
语句是Python解释器可以运行的一个代码单元,也可以理解为可以执行的命令。我们目前已经使用了两种语句:print打印语句和赋值语句。
赋值语句有两个作用:一是建立新的变量,二是将值赋予变量。任何变量在使用时都必须赋值,否则会被视为不存在的变量。
看了上百字,也没明白什么是语句,小萌暗自抱怨到。于是她随手在交互模式下输入如下:
>>> advice='boss,we want have a lunch'
刚输完一句,小萌就停下了,等等,刚才输入的不就是语句吗?前面都做过不少示例了,看看还用过什么语句。在交互模式下写的第一个程序不就是print语句吗?对了,还可以知道这个语句中advice的类型是什么样的。小萌想完,在交互模式下输入如下:
>>> type(advice)
<class 'str'>
这个语句中advice的类型是字符串(str)类型。还有什么类型的赋值语句呢?对了,前面还学习了整型和浮点型,交互模式输入:
>>> money=99999999
>>> type(money)
<class 'int'>
>>> spend=1.11111111
>>> type(spend)
<class 'float'>
不错,把之前学习的温习了一下。于是小萌又在交互模式下输入如下:
>>> so happy
SyntaxError: invalid syntax
哎呀,怎么又犯糊涂了,变量是一定要赋值的。于是重新输入:
>>> print('so happy,it is a perfect forenoon')
so happy,it is a perfect forenoon
小萌突然感觉有人站在自己旁边,原来是小智。小智盯着交互模式输入界面,突然说道:“这个用状态图展示会更直观”。说完就帮小萌画出了一个变量状态图,如图2-6所示。
一般情况下,我们用状态图表示变量的状态。左边是变量名称,右边是变量值。状态图显示了赋值语句的最终操作结果。
原来小智知道这么多,小萌心中暗暗高兴起来,感谢小智的指导。这真是一个愉快的上午,不过真的很饿。好像到服务区了。boss宣布在这里休息一下,顺便补充点能量再往前走。
2.表达式:
表达式是值、变量和操作符的组合。单独一个值可以看作表达式,单独的变量也可以看作表达式。
这个怎么理解呢?小萌不解地看着这么短短一条语句,脑袋怎么都拐不过弯。“今天的午餐真不错”,原来是小智,小萌突然来了精神,可以向小智请教请教啊。
“小智,中午好,能帮我看看这个怎么理解吗?”小智过去看了看,思考了一下,给小萌做了如下讲解。
表达式和语句一般不容易区分,很多人会将两者混在一起。那么语句和表达式之间有什么区别呢?
表达式是某事,语句就是做某事,也就是告诉计算机做什么。比如33是9,print(33)输出也是9。区别在哪里呢?我们在交互模式下输入如下:
>>> 3*3
9
>>> print(3*3)
9
在交互模式下,结果都是一样的。这是因为解释器总是输出所有表达式的值(内部都使用相同的函数对结果进行呈现,后面会有详细介绍)。一般情况下,Python不会这么做,毕竟33这样的表达式不能做什么有趣的事情,而编写print(33)会有一个显式的输出结果9。
语句和表达式之间的区别在赋值时表现得更加明显。因为语句不是表达式,所以没有值可供交互式解释器输出。比如在交互模式下输入如下:
>>> a=100
>>>
>>> 10*10
100
从输入结果可以看到,赋值语句输入完成后,下面立刻出现了新的提示输入符。表达式输入完成后,下面立刻得到了结果。不过对于赋值语句,有些东西已经变了,变量a现在绑定了一个值100。
这个是语句特性的一般定义:它们改变了事物。比如,赋值语句改变了变量,print语句改变了屏幕显示的内容。
赋值语句可能是所有计算机程序设计语言中最重要的语句类型,尽管现在还难以说清赋值语句的重要性。变量就像临时的“存储器”(就像厨房中的锅碗瓢盆一样),强大之处在于,在操作变量时并不需要知道存储了什么值。比如,即使不知道x和y的值到底是多少,也会知道x*y的结果就是x和y的乘积。所以,可以通过多种方法使用变量,而不需要知道在程序运行时,最终存储的值是什么。