3.1 基本语句及顺序结构

语句是Python程序的过程构造块,用于定义函数、定义类、创建对象、变量赋值、调用函数、控制分支、创建循环等。Python语句分为简单语句和复合语句。简单语句包括表达式语句、赋值语句、assert语句、pass语句、return语句、break语句、continue语句、import语句等。

复合语句包括if语句、while语句、for语句、try语句、函数定义、类定义等。

计算机在解决某个具体问题时,主要有三种情形,分别是顺序执行所有的语句、选择执行部分语句和循环执行部分语句。对应程序设计中的三种基本结构是顺序结构、选择结构和循环结构。

3.1.1 基本语句

1.赋值语句

使用赋值号(=)将右边的值(表达式)赋给左边变量的语句称为赋值语句。例如:

上述四条赋值语句分别实现:为变量name赋值一个字符串,为变量age赋值一个整数,为变量score赋值一个浮点数,为变量value赋值一个复数。

2.复合型赋值语句

复合赋值语句是用复合运算符(包括算术复合运算符和位复合运算符)赋值的语句,包括序列赋值、多目标赋值和复合赋值等。

(1)序列赋值

例如:x,y=10,20。

序列赋值可以为多个变量分别赋予不同的值,变量之间用英文逗号隔开。实际上是利用元组和序列解包(sequence unpacking)实现的。

例如:a,b,c,d,e='hello'。

上述语句的功能是分别将5个字符依次赋值给5个变量,a的值为“h”,b的值为“e”,其余类推。

又如:name,age,addr,tel=['李四',20,'北京','18601001234']。

上述语句的功能是分别将右侧的四个值赋值给左边的四个变量,name的值为“李四”,age的值为20,其余类推。

Python可以通过序列赋值语句实现两个变量值的交换。例如:

执行以上两条语句之后,math与english的值发生了互换,math的值为75,english的值为80。

(2)多目标赋值

多目标赋值就是将同一个值赋值给多个变量。例如:x=y=z=20。

多目标赋值通常只用于赋予数值或字符串这种不可变类型,如果欲赋予可变类型(如列表类型),则可能会出现问题。

(3)复合赋值

●+=加法赋值运算符c+=a等效于c=c+a。

●-=减法赋值运算符c-=a等效于c=c-a。

●*=乘法赋值运算符c*=a等效于c=c*a。

●/=除法赋值运算符c/=a等效于c=c/a。

●%=取模赋值运算符c%=a等效于c=c%a。

●**=幂赋值运算符c**=a等效于c=c**a。

●//=取整除赋值运算符c//=a等效于c=c//a。

Python语句涉及许多程序构造要素,将在本书后续章节中陆续阐述。

3.1.2 顺序结构

程序工作的一般流程为:数据输入、运算处理、结果输出。顺序结构是指为了解决某些实际问题,自上而下依次执行各条语句,其流程图如图3-1所示。

图3-1 顺序结构流程图

下面通过几个例子说明使用顺序结构解决各种常见问题。

【例3-1】 编写程序,从键盘输入语文、数学、英语三门功课的成绩,计算并输出平均成绩,要求平均成绩小数点后保留1位。

分析:程序的执行流程为输入三门功课成绩、计算平均成绩、输出平均成绩。输入时使用转换函数将字符串转换为浮点数,输出时采用格式输出方式控制小数点的位数。

运行结果:

【例3-2】 编写程序,从键盘输入圆的半径,计算并输出圆的周长和面积。

分析:在计算圆的周长和面积时需要使用π的值,Python的math模块中包含常量pi,通过导入math模块可以直接使用该值,然后使用周长和面积公式进行计算即可。

运行结果: