内容正文:
第3章 算法的程序实现
第2节
Python语言程序设计
高中信息技术
学习
目录
01
Python语言基础
编程环境
02
03
数据类型与表达式
变量和赋值语句
04
基本数据结构
Part 1
编程环境
一
编程环境
使用Python语言编程解决问题时,需要严格遵守Python语言的语法规则,并选择合理的程序运行环境运行程序。
编程环境
集成开发环境
IDLE、Spyder、Wing、PyCharm等
如何进入IDLE界面呢?
提示符“>>>”表示等待命令输入
直接在“>>>”输入表达式或者一行代码,再按回车键(enter),即可看到程序运行结果
命令行执行方式(交互模式)
程序执行方式(文件模式)
在IDLE菜单中选择“File”→“New File”
进入文件模式的编写,代码编写好后保存为后缀名为.py的文件
按F5键或者在菜单中选择“Run”→“Run Moudle”运行,解释器界面会返回运行结果
一
编程环境
一
编程环境
解释器操作界面
Part 2
数据类型与表达式
整型:数学中的整数,eg:100,25,-10等。 int( )
实型(浮点型):数学中的实数,eg:0.25,-3.5等。float( )
字符串型:相当于文本形式,一般用(英文状态下的)单引号、双引号或三引号表示。如:"这是一个字符!" str( )
布尔型:True(真)和False(假),一般用于判断。
注意大小写
引号只是字符串的标识,而不是字符串的一部分
常见数据类型(P74)
程序中所有的标点符号都是英文状态下的。
通过程序的执行对数据进行加工处理,基本运算是数据处理中最常用的手段。
算术运算
关系运算
逻辑运算
基本运算
算术运算符(P75)
运算符 表达式 描述 示例 优先级
** x**y 求x的y次幂 5**2结果为25 1
* x*y 将x与y相乘 5*2结果为10 2
/ x/y 用x除以y,产生实数值 5/2结果为2.5 2
// x//y 用x除以y,取整数部分(向下取整) 5//2结果为2 2
% x%y 用x除以y,取余数 5%2结果为1 2
+ x+y 将x与y相加 5+2结果为7 3
- x-y 将x减去y 5-2结果为3 3
算术运算符(P75)
// 向下取整,如果结果不是整数,就取比结果小的最大整数。
>>>print(10 // 3)
>>>print(7 // -2)
% 取余数。
>>>print(10 % 3)
判断一个数是奇数还是偶数?
算术运算符(P75)
+ 连接符,连接字符串、列表等,但不支持不同类型的对象之间相加或连接。
>>>print(10+3)
>>>print(“Hello”+“ Python!”)
>>>print([1,2]+[3,4,5])
13
[1,2,3,4,5]
Hello Python!
"1000"+ 1234=?
算术运算符(P75)
* 重复符,序列 (字符串或列表)* 整数N = 将序列重复 N 次。
>>>print([1,2]*2)
[1,2,1,2]
>>>print(“6”*3)
666
算术运算符
请用算术运算符写出下列的式子:
2x2-4ac+5b/c
2*x**2-4*a*c+5*b/c
(-b+(b**2-4*a*c)**0.5)/(2*a)
关系运算符(P75)
运算符 表达式 描述 示例
> x>y x大于y 5>2结果为True
< x<y x小于y 5<2结果为False
>= x>=y x大于等于y 5>=2结果为True
<= x<=y x小于等于y 5<=2结果为False
== x==y x等于y 5==2结果为False
!= x!=y x不等于y 5!=2结果为True
in x in y x 是y的成员 "5"in"2"结果为False
“=”号
都在右边
关系运算符(P75)
请判断一下关系运算的结果:
>>>print(1>=1)
>>>print("C"!="C")
>>>print("B"=="b")
>>>print("a"in"apple" )
>>>print(1+2>2+3 )
关系运算的结果只有真(True),假(False);算术运算符优先于关系运算符。
总结
True
False
False
True
False
逻辑运算符(P76)
运算符 表达式 描述 示例
and x and y 布尔“与” True and False结果为False
or x or y 布尔“或” True or False结果为True
not not x 布尔“非” not False结果为True
逻辑运算符经常用于描述复杂情况的判断。
优先级:not > and > or
逻辑运算符(P76)
T and T = T T and F = F F and T = F F and F = F
T or T = T T or F = T F or T = T F or F = F
not T = F not F = T
运算规则
请判断一下逻辑运算的结果:
not"B"=="b" or "a"in"apple" and 2!=3
not(1>=1 and "C"!="C" or 1+2>2+3)
True
True
运算符
算术运算符 > 关系运算符 > 逻辑运算符
总结
试
试
一
Part 3
变量和赋值语句式
变量的命名规则?
变量有什么特征?
变量和赋值语句(P76)
例2 teacher ≠ TEACHER
例1 Plan9(√) 9plan(×)
1.由字母、数字、下划线组成;
2.不能以数字开头;
3.区分大小写;
4.不包含除“_”以外的特殊符号;
5.不能用关键字作为变量名。
and elif import raise global
as else in return nonlocal
assert except is try True
break finally lambda while False
class for not with None
continue from or yield
def if pass del
赋值语句的特征?
变量和赋值语句(P76)
变量名=表达式
赋值符号
将表达式的值赋值给变量。
算术运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符
赋值语句能改变变量的数据类型吗?
变量和赋值语句(P76)
a=100
a="100"
a=3.14159
print(a)
a=a+1 a+=1
b=b*3 b*=3
c=c/5 c/=5
a,b=b,a
a=b=c=1
a,b,c=1,2.5,"3"
Part 4
基本数据结构
字符串(P77)
字符串是由0个或多个字符组成的序列,字符串中的字符不能被修改。
Eg:a = "hello!" a这个变量由6个字符组成。
0 1 2 3 4 5
h e l l o !
-6 -5 -4 -3 -2 -1
切单个字符:变量名[索引号] a[0]:h a[5]:! a[-1]:!
切多个连续字符:变量名[起始索引:终止索引](切出的字符不包含终止索引)
a[0:5]:hello a[2:5]:llo
变量名[:-1](切除最后一个字符) a[:-1]:hello 反向索引
索引
切 片
字符串 ——练习
我们的十八位居民身份证号码中包含着许多信息,请识别出用户输入的身份证号中所包含的出生日期信息并将信息输出。
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
5 3 2 9 0 1 2 0 0 1 0 5 1 9 2 4 5 6
ID表示身份证号,year表示年,month表示月,date表示日 。
ID="532901200105192456"
year=ID[6:10]
month=ID[10:12]
date=ID[12:14]
print(“您的出生时间为:”+year+“年”+month+“月”+date+“日。")
!!!
字符串切出来还是字符串
列表(P77)
字符串和列表都是由一些数据元素共同组成的一个序列整体。
字符串由多个字符组成,列表由多个元素组成。
字符串由一对引号创建,列表由[ ]创建,各元素间用逗号分隔,每个元素可以是不同的数据类型,列表中的元素可以增加、删除和修改。
字符串和列表索引和切片的方法是一样的。
列表(P77)
Class1=[“1班”, ”老师1”, 31]
Class2=[“2班”, ”老师2”, 35]
Class3=[“3班”, ”老师3”, 33]
Class4=[“4班”, ”老师4”, 32]
Class5=[“5班”, ”老师5”, 29]
012
我们要查找出1班的老师:print(Class1[ ?])
修改2班的学生人数:
Class1[ 2 ]=32
在列表的最后添加元素(班级所在楼):
列表名.append(值)
Class1.append(“卓远楼”)
列表(P77)
“大家喜欢玩游戏吗?很多游戏都有一个积分榜功能。那我们可以用编程来存储玩家的得分,并且能随时更新吗?”
players = ["小明", "小红", "小刚"]
points = [1500, 2200, 1800]
# 小明玩了一局,赢了50分
#创建列表
# 查询小刚的积分
print(“小刚的积分是:”,points [2])
# 一个新玩家“小美”加入了游戏,初始积分为1000
players.append("小美")
points.append(1000)
print("新玩家加入后:")
print("玩家:", players)
print("积分:", points)
points[0] = points[0] + 50
print("小明得分更新后:", points)
字典(P78)
相同点:字典和列表类似,包含多个元素,每个元素之间用逗号分隔。
不同点:字典用{}创建,每个元素包含两个部分:键(key)和值(value)。键和值两者一一对应,且每个键只能对应一个值。
字典中的元素没有顺序,通过键为索引来查找值。
字典(P78)
dic={"铅笔":71,"钢笔":59,"橡皮":98,"尺子":92}
print(dic["铅笔"])
dic["橡皮"]=90
dic["碳素笔"]=55
#修改"橡皮"键的值为90
#增加元素 "碳素笔":55
字典(P78)
player1 = ["小明", "云南", 14,20]
我们用列表管理游戏积分。但如果现在我想让积分榜能展示每个玩家更全面的信息,比如姓名、地区、年龄和积分,用列表该怎么办?”
可读性差:player1 [2] 是年龄,还是积分?不直观,容易混淆。
维护困难:如果信息顺序变了,或者要增加“性别”信息,所有代码都要改。
字典
它让我们可以为每一条信息起一个名字(键),然后对应它的内容(值)。
字典(P78)
以积分榜为例:
player1 ={“姓名”:"小明", “地区”:"云南",“年龄”:14, “积分”:56}
#创建字典
#访问元素(通过有意义的“键”),查找小明的年龄
print(player1 [“年龄”])
#修改小明的积分
player1 [“积分”]=player1 [“积分”]+3
#添加新的键值对
player1 [“性别”]=“男”
总结
特性 字符串(String) 列表(List) 字典(Dictionary)
核心概念 字符的有序序列 元素的有序集合 键-值对的无序集合
表示符号 单引号 '' 或双引号 "" 方括号 [ ] 花括号 { }
索引方式 整数索引(位置) 整数索引(位置) 键(key)索引
元素要求 只能是字符 可以是任意类型,且类型可不同 键(key):必须是不可变类型(如字符串、数字、元组)
值(value):可以是任意类型
可变性 不可变 可变 可变
数据关系 线性序列 线性序列 映射关系(关联数组)
只需知道数据之间相互链接的顺序
探讨与讨论
1.Python的算术运算符不包括( )。
A.* B.// C.% D.\
D
解析:ABC都是Python中常用的算术运算符。D是转义字符,表示行尾的续行符,即一行未完,转到下一行继续写。
2. 表达式7%2的结果是( )。
A.1 B.2 C.3 D.3.5
A
解析:%表示取模/取余,即两个数相除后的余数,因此7%2==1。
只需知道数据之间相互链接的顺序
3. 关于Python算术操作符,以下选项中描述错误的是( )。
A.x//y表示x与y之整数商,即不大于x与y之商的最大整数
B.x**y表示x的y次幂,其中,y必须是整数
C.x%y表示x与y之商的余数
D.x/y表示x与y之商
B
解析:B 错误x**y表示x的y次幂,其中,y可以是整数,也可以是小数。
4.执行3 < 4 or 3 == 4后输出的结果为( )。
A.None B. not is C.False D.True
D
解析:or是逻辑或运算符,当两个判断式满足其中一个时,则返回True。
探讨与讨论
$