购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

第四章
程序设计基础

一、程序设计语言的基础知识

1.常量与变量

数据总是以常量或变量两种形式出现在程序中。

●常量:________________________________________________。

●变量:________________________________________________。在程序设计语言中,变量可以用指定的名字来代表,即变量由变量的“标识符”(变量名)、变量的“内容”(值)和变量的类型(数据类型)三部分组成。变量的内容在程序运行过程中是可以变化的。变量名是内存的符号化地址,代表了内存中的值。变量的赋值遵循“新来旧去”的规则。

2.标识符

Python程序设计语言规定标识符由_________________________________________组成,并且其第一个字符必须是____________,而不能是数字。在Python中,标识符要区分字母大小写。

Python是动态语言,动态语言的变量不需要定义数据类型,其数据类型可以不固定,是动态的,需要根据其赋予的值来确定其数据类型。与之对应的是静态语言,静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。因此,和静态语言相比,动态语言更灵活。同样一个变量是可以重复赋值的,而且可以被赋予不同类型的值。同时,Python支持多种数据类型,在计算机内部,可以把任何数据都看成一个“对象”,而变量就是在程序中用来指向这些数据对象的,对变量赋值就是把数据和变量关联起来。

3.Python的数据类型

不同的数据,需要定义不同的数据类型。Python能够直接处理的常用数据类型有Number(数值)、String(字符串)、List(列表)、Tuple(元组)、Sets(集合)、Dictionary(字典)等。检测一个数据的类型使用type()函数。

(1)Number(数值)

①整型(Int):在Python中,整型有以下几种表示形式:二进制、八进制、十进制和十六进制。例如,十进制整数17,其二进制形式为0b10001,八进制形式为0o21,十六进制形式为0x11。这里涉及以下函数:

bin(x):________________________________________________。

oct(x):________________________________________________。

int(x):________________________________________________。

hex(x):________________________________________________。

②浮点型(Float):由整数部分和小数部分组成。它有两种表示形式:小数形式和指数形式。例如,123.45可以写成1.2345e2。

③复数(Complex):由实数部分和虚数部分组成,有两种表示形式。例如,a+bj可以写成complex(a,b)。

(2)字符串(String)

字符串是由英文状态下的____________括起来的任意文本,如:"abc""123"等。

字符串元素的引用是通过下标来确定的。

顺序引用:下标从0到len(str)-1,若a="cz2024",则a[0]的值为'c',a[1]的值为'z'……

倒序引用:从最后一个元素开始,下标依序分别为-1,-2,-3,…直到-len(str),若a="cunzhao",则a[-1]的值为'o',a[-2]的值为'a'……

字符串的多元素引用:切片。

基本格式:字符串名[起始位置:结束位置],包含起始值,不包含结束值。若省略起始值,则默认从第一个元素开始。若s="1a2ds3",则a[2:5]的值为'2ds',a[:3]的值为'1a2'。

(3)列表(List)

列表是由____________括起来的数据序列,元素类型可以是任意类型,如a=['a',1,'s',3]。列表元素的引用和字符串元素的引用一样。

(4)元组(Tuple)

元组是由____________括起来的数据序列,元素类型可以是任意类型,如t=('a',3)。元组元素的引用和字符串元素的引用类似。

(5)集合(Set)

集合是由____________括起来的数据序列,元素类型可以是任意类型,元素值不能重复,不能通过下标引用其元素,如s={'a',2,4,'d'}。

(6)字典(Dictionary)

字典是由____________括起来的键值对序列,元素类型可以是任意类型,不能通过下标引用其元素,如d={'a':1,'n':'yes'},d['a']的值为1,d['n']的值为'yes'。

4.Python的运算符与表达式

在Python程序设计语言中对常量或变量进行运算或处理的符号称为运算符,参与运算的对象称为操作数。操作数可以是常量、变量、函数等。常用的运算符有算术运算符、逻辑运算符、关系运算符、赋值运算符、成员运算符等。

由运算符、操作数连接而成的式子称为表达式。

(1)算术运算符与算术表达式

算术运算符包括____________、____________、____________、____________、____________、____________和 ____________,分别表示加、减、乘、除、求余、幂运算和整除。用算术运算符连接起来的式子称为算术表达式。

(2)逻辑运算符与逻辑表达式

逻辑运算符包括____________、____________、____________三个。由逻辑运算符连接而成的表达式称为逻辑表达式。and运算,如果两边为非0值则返回右边表达式的值,表示为真,如5 and 3的值为3,表示真,即成立;如果任意一边为0值则返回0,表示假,即不成立,如0 and 5、7 and 0的值都为0。or运算,只要有一边为非0值则立即返回非0的那边的值,否则返回0,如3 or 4的值为3,0 or 5的值为5,7 or 0的值为7。

(3)关系运算符与关系表达式

判断数据大小关系的运算符称为关系运算符,关系运算符有:____________、____________、 ____________、____________、____________、____________。由关系运算符连接而成的表达式称为关系表达式。关系表达式的值为____________或____________。

(4)赋值运算符与赋值表达式

Python中的赋值运算符有:____________、____________、____________、____________、____________、____________、 ____________、____________。赋值号不是等号,具有方向性,由右边赋给左边,且赋值号左边只能是变量,而不能是常量或表达式。如s=3表示将3存入到变量s对应的内存空间里;对于复合的运算符要先运算后赋值,如s+=3与s=s+3等价,先做s+3然后再将值放入到s对应的内存空间中。只有赋值才能改变变量的值,若a=3,则执行a*2后,由于a并没有被重新赋值,因此,a的值依然是3。

(5)成员运算符

除了前面的运算符,Python用成员运算符判断序列中是否有某个成员。常用的成员运算符有____________、____________。如'3' in "asd3er"的值为True,因为'3'确实在"asd3er"中。

5.运算符的优先级

当一个表达式中有多种运算符时,运算的顺序将根据运算符的优先级由高到低进行运算。如果是同级运算则按从左到右的顺序进行。Python运算符的优先级如下表所示。

二、运用顺序结构描述问题求解过程

1.数据的输入

在Python程序设计语言中,数据输入通过input()函数来实现,input()的一般格式为:

<变量> =input('提示信息:')

该函数返回输入的对象,可输入数字、字符串和其他任意类型对象。在Python 3.x中,不论用户输入什么类型的数据,input()函数的返回结果都是字符串,如果需要可将其转换为相应的类型再处理。

2.数据的输出

在Python 3.x中,数据输出可通过print()函数来实现,print()的一般格式为:

print([object,][' '][,end='\n'])

说明:①方括号中的项是可选的,可以省略,如省略则取系统的默认值。

②object是要输出的对象,可以是常量、变量或表达式等。

③sep后面的空格(可以指定为其他字符)表示每个输出对象之间的分隔符,如果缺省,默认值是一个空格。

④end后面的字符串含义为输出文本尾的一个字符串,如果缺省,那么默认值是一个\n换行符。如果设为其他字符,如end=' ',则输出当前行的所有内容后,在末尾加一个空格,不换行接着输出下一个print()的输出对象。

⑤print()函数支持参数格式化,与C语言的printf()类似。

【例1】 在脚本模式下,print()输出示例程序如下:

print("Hello",end=' ')

print("World!")

输出:Hello World!

3.顺序结构的应用

顺序结构是最常用、最简单的程序结构,其语句执行顺序是自上而下依次执行的。只要按照解决问题的顺序写出相应的语句,便可设计出程序的顺序结构。顺序结构的流程图如图所示。

【例2】 求任意一个圆的面积的程序如下:

import math

r=float(input('请输入半径:'))

s=math.pi*r*r

print("该圆的半径为:%.2f"%(s))

三、运用选择结构描述问题求解过程

在解决问题的过程中,常常需要对事物进行判断和选择。在程序设计中,主要使用条件语句(if语句)来实现判断和选择。if语句在使用中包括单分支if语句、双分支if语句、多分支语句。

单分支if语句的格式:

在使用单分支if语句时需要注意:①if(条件表达式)后面加____________;②当语句是由多个语句构成的复合语句时,所有语句严格遵循相同的____________。

单分支if语句的执行过程:如果条件表达式为真,则执行语句,然后继续往下执行;如果条件表达式为假,则不执行语句,然后继续往下执行。其执行过程如图所示。

双分支if语句的格式:

双分支if语句的执行过程:如果条件表达式为真,则执行语句1,然后继续往下执行。如果条件表达式为假,则执行语句2,然后继续往下执行。其执行过程如图所示。

【例3】 在例2中,在要求输入圆的半径时,用户很有可能输入的不是数值型数据,因此,我们要对输入的数据进行判断,如果不是数值型,应该提示用户输入有误,否则输出圆的面积。其代码如下:

多分支if…elif…else语句格式如下:

if…elif…else语句的执行过程如图所示。

四、运用循环结构描述问题求解过程

程序的循环结构是程序设计中常用的基本结构之一。循环是让计算机自动完成重复工作的常见方式。在Python语言中,常见的循环关键字有____________,循环控制关键词有____________。

1.for循环的应用

for循环语句的一般格式:

for循环变量 in 列表:

语句或语句组

for循环依次把列表中的每个元素逐个迭代出来。冒号(:)代表下一行是循环的第一行,但是循环体在书写时需要缩进。在for循环中,从for语句末尾的冒号开始至其下没有缩进的代码之间都是其包含的需要重复执行的部分。因此,for循环所包含的语句是以缩进为标志的。

【例4】 求两个列表中元素的相似度的程序如下:

2.while循环的应用

while循环是当型循环,只要条件满足,就不断循环;否则,退出循环。while循环语句的格式:

说明:表达式一般是一个关系表达式或一个逻辑表达式,表达式的值应该是一个逻辑值真(True)或假(False)。当表达式的值为真时,执行循环体语句;当表达式的值为假时,退出循环,执行循环体外的下一条语句(即while后面没有缩进的第一条语句)。每次循环都是执行完循环体语句后回到表达式处重新开始判断,重新计算表达式的值。一旦表达式的值为假就退出循环,为真时就继续执行循环体语句。循环体中必须有改变条件表达式值的语句,否则将成为死循环。while循环的执行过程如图所示。

【例5】 求任意两个正整数的最大公约数的程序如下:

3.循环嵌套的应用

单独使用for循环或while循环的单循环语句,往往无法解决复杂的问题。如需要解决类似“工作要做很多遍,而每一遍工作都是需要重复做一些事情”的问题,就要用到多重循环,即“循环嵌套”。如果某一种循环语句中包含着自身或其他循环语句,就称为循环的“嵌套”。for循环或while循环之间可以相互嵌套。

4.循环的控制

循环控制包含控制循环变量的变化方式和控制循环的跳转。无论是for循环还是while循环,都需要一个控制循环的变量来控制循环的执行。但是,有些循环仅靠循环变量自身的变化难以达到想要的控制效果,因此需要用到控制循环的跳转语句。实现控制循环的跳转需要用到break和continue两个关键字。其中,break是____________循环,continue是____________循环体的执行。

随堂练习

一、单项选择题

1.在Python中,下列说法正确的是(  )。

A.在程序运行过程中,常量的值可以发生改变

B.在程序运行过程中,变量的值可以发生改变

C.在Python中,“123”和123都表示整型常量

D.在Python中,变量必须先定义数据类型才能使用

2.在Python程序设计语言中,可以返回列表、元组、字典、集合、字符串等对象中元素个数的函数是(  )。

A.int(x)

B.abs(x)

C.len(x)

D.max(x)

3.下列可以作为 Python 语言变量名的是(  )。

A.IBM

B.x*y

C.for

D.5ab

4.已知字典dict1={1:"张三",2:"李四",3:"王五",4:"马六" },要得到字典中的“王五”,下列方法可行的是(  )。

A.dict1[2]

B.dict1{3}

C.dict1[3]

D.dict1["王五"]

5.在Python中,赋值语句“x+=y”等价于(  )。

A.x==x+y

B.x+y=x

C.y+=x

D.x=x+y

6.执行如下语句时,分别输入了2和3,则输出结果是(  )。

x=input()

y=input()

Print(x+y)

A.2

B.3

C.5

D.23

7.以下语句执行之后,变量a的数据类型为整型的是(  )。

A.a=8/7

B.a=input ( )

C.a=5 >4

D.a=15//7

8.打印显示如图所示的图形,程序代码如下,则空缺部分应填入(  )。

A.0,9,1

B.1,10,1

C.1,10,2

D.1,9,2

9.在Python中,下面代码的运行结果是(  )。

A.1

B.2

C.3

D.4

10.有以下程序段,程序运行后,其输出结果为(  )。

A.1 5

B.3 5

C.1 3

D.2 5

二、判断题

11.元组是一种无序的数据类型。(  )

12.若有a=[1,2,3,4,5],则表达式a[2]+a[4]的值为6。(  )

13.在Python中,定义函数的关键字是def。(  )

14.在Python中,运算符+=的优先级要高于运算符*=。(  )

15.在Python中,语句缩进不缩进,不影响运行结果。(  )

16.在Python中,执行“int('1.9')”函数后的结果是2。(  )

17.在 Python中,for语句中的循环体必须缩进两个空格。(  )

18.在循环中continue语句的作用是提前结束本次循环(  )

19.使用set()可以创建一个空集合。(  )

20._1是Python合法的用户标识符。(  )

三、应用题

21.完善下面的Python程序,实现“韩信点兵”的民间故事。韩信有一千余不足一千一百名士兵,“三三数之剩二,五五数之剩四,七七数之剩三”。韩信马上说出人数:1004。

22.请用三种方法编写程序:任意输入两个整数变量a、b,交换整数变量的值。(如a=2,b=3,输出a=3,b=2)

23.编程实现:1到100中奇数之和及偶数之和。 WfzjaX8R8aTXSy1a1eSvx68DR26AJ7rFUzs94ZBKOocFJS6yG625Netlwj0Jkeo+

点击中间区域
呼出菜单
上一章
目录
下一章
×