第3章 算法的程序实现
浙教版 信息技术(高中)
必修1 数据与计算
3.2 python 语言程序设计
学习目标
1
2
3
熟悉并会使用算术运算符、关系运算符、逻辑运算符、字符串运算符。
4
函数与模块
If语句,顺序结构,循环结构等。
熟悉Python数据类型与表达式,变量和赋值语句
1
2
重点难点
重点:
难点:函数与模块。
If 语句,顺序结构,循环结构等。
课堂导入
Python是一种面向对象的程序设计语言,可以支持很多日常问题的
程序实现,特别适合应用程序的快速开发。
3.2.1 python 语言基础
1.编程环境
图3.2.1 IDLE的操作界面
解释器操作界面
编辑器操作界面
拓展链接:
集成开发环境(IDE) 是提供程序开发环境的应用程序,一般包括代码编辑器、调试器和图形用户界面工具。目前,用于编写Python程序的IDE较多,如IDLE、Spyder、Wing、PyCharm等。如图3. 2. 2是Spyder的操作界面。
图3.2.2 spyder的操作界面
2、数据类型与表达式
表3.2.1 python常见数据类型
表3.2.2 python 算术运算符
表3.2.3 python 关系运算符
表3.2.4 python 逻辑运算符
3、变量和赋值语句
在Python中,变量名可以包括字母、数字和下划线,但不能以数字开头,而且字母区分大小写。所以,Plan9是合法变量名,而9Plan不是;变量名teacher 和TEACHER表示两个完全不同的变量。由于Python是动态类型语言,因此在使用前不需要预先声明变量的数据类型。例如:
>> > degrees_cel=26. 0
>> > degrees_cel
26. 0
>> > degrees_cel="26. 0"
>> > degrees_cel
26. 0'
上例中,语句“degrees_cel=26. 0”创建了一个名为degrees_cel的变量,变量的类型是实型且值为实数26. 0。而下面的语句"degrees_cel="26. 0””执行后,变量degrees_cel的类型变成了字符串型。因此,在Python中,变量的值和类型都可以改变。
4、基本数据结构
(1)字符串和列表
>>>info=[”BH60018”,”苹果”,50]
>> > info= ["BH60018", "苹果", 50]
>> > info [2]
50
>> > S="Hello"
>> > s [1]
'e‘
>> > info [0: 2]
['BH60018', '苹果]
>> > s [1: 4]
'ell'
列表操作举例:
(2)字典
图3.2.5 字典结构示例
>>>dic={”铅笔”:71,”钢笔”:59,”橡皮”:98,”尺子”:92}
>>>print(dic[“铅笔”])
71
上述程穿第一行语句创建了一个名为dic的字典,共有4个元素,第1个元素包含了键“铅笔"和值71, 第2个元素包含了键"钢笔"和值59······第二行输出字典dic中键”铅笔”对应的值。
问题与讨论:
1. 通过网络学习,了解各种程序设计语言的特点,通过比较得出python语言的优缺点。
2. 请列举日常生活中所接触到的数据(如通讯录、成绩表等), 并说明它们在使用Python语言描述时适用的数据类型或数据结构。
3.2.2顺序结构的程序实现
a=int (input ("请输入整数a的值:") )
b=int (input ("请输入整数b的值:") )
c=a
a=b
#语句1
#语句2
#语句3
b=c
print ("a=",a)
print ("b=",b)
图3.2.6 交换两个变量值的流程图
问题与讨论:
如果调换上述程序中语句1、语句2或语句3的位置,程序的运行结果将会如何变化?
表3.2.5 python 常见内建函数
3.2.3 分支结构的程序实现
1、if语句
一般格式:
if<条件>:
<语句块1>
else:
<语句块2>
拓展链接:
语句块缩进
在python中,行尾冒号的作用是告诉python接下来要创建一个新的语句块。因此,只要某一行以冒号结尾,它接下来的内容就应该有缩进。python中有一个惯例:总是将语句块缩进4个空格。
图3.2.7 区间测速示意图
(1)抽象与建模
判断结果=
{
“正常”(v≤100)
“超速”(v>100)
其中v=sx3600/t
(2)设计算法
图3.2.8 超速判断算法流程图
(3)编写程序
问题与讨论:
分析下面两段代码,找出两者的区别。
2.if-elif 语句
if<条件1>:
<语句块1>
elif<条件2>:
<语句块2>
......
elif<条件N>:
<语句块N>
else:
<语句块N+1>
(1)抽象与建模
表3.2.7 超速标准及其判断条件对应表
(2) 设计算法
图3.2.9 超速程度判断算法流程图
(3)编写程序
3.2.4 循环结构的程序实现
1.for 语句
在python中,for语句的格式为:
for<变量>in<序列>:
<循环体>
hobby= ["篮球", ”羽毛球", ”看书", "旅游”, "音乐"]
for x in hobby:
print (x)
for num in range (0, 10, 1) :
print (num,end=')
该语句执行后,输出的结果是:
0123456789
热量消耗
(1)抽象与建模
表3.2.8 某学生一天中主要运动消耗热量表
要计算总热量,可将各项运动消耗的热量进行累加。计算模型如下:
s=Σai, (其中s为总热量,a,为各项运动消耗的热量,n=5)
i=0
n
(2) 设计算法
图3.2.10 计算总消耗热量流程图
(3)编写程序
2.While语句
在许多情况下,当一个循环执行之前,可能并不知道它需要执行的次数。这时,就可以使用 while循环。其常见格式如下:
while <条件>:
<循环体>
问题与讨论:
在“猜数游戏”中,若不引入布尔型变量(本例中的running),
程序该如何实现?
3.2.5 函数与模块
1. 函数构造及应用
Def 函数名(参数集合):
<函数体>
[return 函数值]
2.模块的导入及应用
(1)math模块
(2)random模块
import random
cla= [" (2) 班", " (3) 班", " (5) 班”, ” (8) 班”, " (9) 班"]
random.shuffle (cla)
for x in cla:
print (x)
(3)image 模块
from PIL import Image
im=Image.open ("school.jpg")
print (im.format)
print (im.size)
print (im.mode)
im.rotate (45) .show0
#打开school.jpg图像文件
#获取图像文件格式
#获取图像尺寸大小
#获取图像的颜色模式
#将图像旋转45°后显示
思考与练习:
1. 写出下列Python表达式或程序语句的值。
(1) 123%100
(2) len ("Hello Leo! ")
(3) abs (-12)
(4) data= [172, 9, 165, 29, 156, 21]
max (data)
2. 编程求几个数中的最大值。
(1) 分别输入两个数,输出它们中的最大值。
(2) 分别输入三个数,输出它们中的最大值。
3. 编程求1~100的所有偶数的和。试采用两种不同的方式实现。
4. 检测字符串是否全是数字。编程实现:对输入的一串字符串进行检测,输出“该字符串包含非数字字符”或“该字符串全是数字字符”的信息。
5. 运行以下程序,观察所呈现的图形,思考每行语句的功能。
import turtle
t=turtle. Pen ()
turtle.bgcolor ("white")
colors= ["red", "green". "blue", "yellow"]
for x in range (100) :
t.pencolor (colors [x%4] )
t.circle (x)
t.left (91)
6. 修改“猜数游戏”实例中的程序,增加用户猜测次数(如允许用户最多猜5次)的限制功能。
7. 修改“猜数游戏”实例中的程序,使给定数由程序随机生成。
谢 谢!
Thanks!
https://www.21cnjy.com/help/help_extract.php