内容正文:
3.2 Python语言程序设计
班级:__________ 姓名:__________ 学号:__________ 得分:__________
【知识点梳理】
一、Python编程环境
Python是一种高级程序设计语言,具有语法简洁、可读性强、功能丰富等特点。Python的集成开发环境(IDLE)提供了交互式解释器(Python Shell)和脚本编辑器两种模式:
1. 交互式模式(Python Shell):输入一行代码立即执行并显示结果,适合测试简单代码和学习。
2. 脚本模式:将多行代码保存为.py文件,然后一次性运行,适合编写完整程序。
二、基本数据类型
Python常见的基本数据类型有四种:
1. 整型(int):表示整数,如10、-5、0。
2. 浮点型(float):表示带小数点的实数,如3.14、-0.5、2.0。
3. 字符串型(str):用单引号或双引号包裹的字符序列,如"hello"、"Python"、"123"。
4. 布尔型(bool):表示逻辑值,只有True(真)和False(假)两个取值。
在Python中,变量使用前不需要预先声明数据类型,直接赋值即可,变量的类型由其所赋值的类型决定。可以用type()函数查看变量的数据类型。
三、变量与赋值
变量是用来存储数据的容器。变量的命名规则:
1. 变量名可以包含字母、数字和下划线(_)。
2. 变量名不能以数字开头。
3. 变量名区分大小写(如age和Age是两个不同的变量)。
4. 不能使用Python的关键字(如if、for、while等)作为变量名。
赋值语句的基本格式:变量名 = 值(或表达式)。例如:a = 10,b = a + 5。Python还支持多重赋值,如a, b = 1, 2(同时给a和b赋值),以及交换变量a, b = b, a。
四、运算符
1. 算术运算符:+(加)、-(减)、*(乘)、/(除,结果为浮点型)、//(整除,取商的整数部分)、%(取余,取除法的余数)、**(幂运算)。
2. 关系运算符:>(大于)、<(小于)、>=(大于等于)、<=(小于等于)、==(等于)、!=(不等于)。关系运算的结果是布尔值True或False。
3. 逻辑运算符:and(逻辑与,两边都为True结果才为True)、or(逻辑或,两边有一个为True结果就为True)、not(逻辑非,取反)。
4. 成员运算符:in(检查一个值是否在指定序列中)。
5. 赋值运算符:=、+=(a+=b等价于a=a+b)、-=、*=、/=、%=等。
运算符优先级(从高到低):括号() > 幂运算** > 乘除模* / % // > 加减+ - > 关系运算符> < >= <= == != > 成员in > 逻辑not > and > or > 赋值=。
五、输入与输出
1. 输入函数input():接收用户从键盘输入的内容,返回值是字符串类型。基本格式:变量 = input(提示信息)。例如:name = input("请输入姓名:")。如果需要输入数值,需要用int()或float()进行类型转换,如:age = int(input("请输入年龄:"))。
2. 输出函数print():将内容输出到屏幕。基本格式:print(输出内容)。可以输出多个内容,用逗号分隔,如:print("年龄:", age)。可以用end参数设置输出结束符(默认是换行),如:print("hello", end=" ")。
3. 类型转换函数:int(x)将x转换为整型,float(x)将x转换为浮点型,str(x)将x转换为字符串型。
六、三种控制结构的Python实现
1. 顺序结构:语句按书写顺序从上到下依次执行,是最基本的结构。
2. 分支结构(选择结构):使用if语句实现。
单分支:if 条件: 语句块
双分支:if 条件: 语句块A else: 语句块B
多分支:if 条件1: 语句块A elif 条件2: 语句块B else: 语句块C
注意:if、elif、else后面都要有冒号,语句块需要缩进(通常4个空格)。
3. 循环结构:使用for语句或while语句实现。
for循环:for 变量 in 序列: 循环体。常用于遍历序列或已知循环次数的情况,如for i in range(1, 11): 表示i从1到10。
while循环:while 条件: 循环体。先判断条件,条件成立则执行循环体,否则退出循环。
注意:循环体需要缩进,要确保循环条件最终能变为不成立,避免死循环。
【同步练习】
一、单项选择题(每题2分,共30分)
1. 在Python中,下列变量名合法的是( )
A. 2name
B. my_name
C. class
D. my-name
2. 表达式 17 // 4 的结果是( )
A. 4.25
B. 4
C. 1
D. 4.0
3. 表达式 17 % 4 的结果是( )
A. 4
B. 1
C. 0.25
D. 4.25
4. 在Python中,input()函数的返回值类型是( )
A. 整型
B. 浮点型
C. 字符串型
D. 布尔型
5. 下列表达式的结果为True的是( )
A. 5 > 3 and 2 > 4
B. 5 > 3 or 2 > 4
C. not (5 > 3)
D. 3 == "3"
6. 执行语句 a, b = 3, 5 后,再执行 a, b = b, a,此时a和b的值分别是( )
A. 3和5
B. 5和3
C. 3和3
D. 5和5
7. 下列Python语句中,正确的if语句格式是( )
A. if x > 0
print(x)
B. if x > 0:
print(x)
C. if x > 0 then
print(x)
D. if (x > 0)
print(x)
8. 表达式 2 ** 3 的结果是( )
A. 5
B. 6
C. 8
D. 9
9. for i in range(1, 6) 循环中,i的取值依次是( )
A. 1, 2, 3, 4, 5, 6
B. 1, 2, 3, 4, 5
C. 0, 1, 2, 3, 4, 5
D. 0, 1, 2, 3, 4
10. 下列关于Python缩进的说法,正确的是( )
A. 缩进只是为了美观,不影响程序运行
B. 同一语句块中的语句必须保持相同的缩进
C. 缩进只能用空格,不能用Tab键
D. if语句后面的语句块不需要缩进
11. 执行 print(3 + "5") 会出现的情况是( )
A. 输出8
B. 输出35
C. 输出"35"
D. 报错,类型不匹配
12. 下列表达式中,运算结果为浮点型的是( )
A. 10 // 3
B. 10 % 3
C. 10 / 3
D. 10 + 3
13. 以下程序段的输出结果是( )
s = 0
for i in range(1, 6):
s = s + i
print(s)
A. 0
B. 5
C. 10
D. 15
14. 下列关于while循环的说法,正确的是( )
A. while循环的循环体至少执行一次
B. while循环是先执行循环体,后判断条件
C. while循环的条件如果永远为True,会形成死循环
D. while循环不能用于已知循环次数的情况
15. 要将字符串"123"转换为整数123,应使用的函数是( )
A. str("123")
B. int("123")
C. float("123")
D. type("123")
二、判断题(每题1分,共10分。正确打"√",错误打"×")
16. 在Python中,变量名不区分大小写。( )
17. 表达式 10 / 3 的结果是3。( )
18. input()函数返回的是字符串,如果需要输入数字必须进行类型转换。( )
19. Python中if语句后面不需要写冒号。( )
20. 布尔型数据只有True和False两个取值。( )
21. for循环只能用于遍历列表,不能用于指定循环次数。( )
22. 表达式 5 == "5" 的结果是True。( )
23. 在Python中,可以使用关键字作为变量名。( )
24. while循环的循环体可能一次也不执行。( )
25. print函数输出多个内容时,用逗号分隔,输出时各内容之间默认有空格。( )
三、填空题(每空2分,共20分)
26. Python中四种基本数据类型是整型、________、字符串型和________。
27. 表达式 25 // 4 的值是________,表达式 25 % 4 的值是________。
28. Python中if语句的条件后面必须加________,语句块必须________。
29. for i in range(0, 10, 2)中,i的取值依次是0、2、4、________、________。
30. 将整数5转换为字符串"5"应使用函数________,将字符串"3.14"转换为浮点数应使用函数________。
31. Python中逻辑运算符包括and、________和________。
四、简答题(每题8分,共16分)
32. 请简述Python中for循环和while循环的区别及各自的适用场景。
33. 阅读以下Python程序,回答问题。
score = int(input("请输入成绩:"))
if score >= 90:
print("优秀")
elif score >= 60:
print("及格")
else:
print("不及格")
(1)当输入85时,程序输出什么?(2分)
(2)当输入59时,程序输出什么?(2分)
(3)该程序使用了哪种控制结构?(2分)
(4)如果要增加"良好"等级(80-89分),应该如何修改程序?请写出修改后的关键语句。(2分)
五、综合应用题(共14分)
34. 阅读材料,回答问题。
材料:某班级有n名学生,老师想要编写一个Python程序来统计班级数学考试的平均分,并找出最高分。程序需要先输入学生人数n,然后依次输入n名学生的成绩,最后输出平均分和最高分。
(1)请写出该程序中需要使用的变量及其含义。(4分)
(2)该程序需要使用哪些控制结构?请分别说明理由。(4分)
(3)请用Python代码实现该程序(要求:使用for循环实现成绩输入,平均分保留1位小数输出)。(6分)
【参考答案】
一、单项选择题
1.B 2.B 3.B 4.C 5.B 6.B 7.B 8.C 9.B 10.B 11.D 12.C 13.D 14.C 15.B
二、判断题
16.×(区分大小写) 17.×(10/3结果是3.333...,浮点型) 18.√ 19.×(必须加冒号) 20.√ 21.×(for循环可配合range()指定次数) 22.×(整型和字符串不相等,结果False) 23.×(不能用关键字作变量名) 24.√(先判断后执行,条件不成立则一次也不执行) 25.√
三、填空题
26. 浮点型(实型);布尔型(顺序可互换)
27. 6;1
28. 冒号(:);缩进(保持相同缩进)
29. 6;8
30. str();float()
31. or;not(顺序可互换)
四、简答题
32. 参考答案:
区别:
①for循环:通过遍历一个序列(如range()生成的整数序列、列表、字符串等)来控制循环次数,循环次数由序列的长度决定。格式为:for 变量 in 序列: 循环体。(2分)
②while循环:通过判断一个条件表达式是否成立来控制循环,条件成立则执行循环体,条件不成立则退出循环。格式为:while 条件: 循环体。(2分)
适用场景:
①for循环适合循环次数已知的情况,如遍历列表元素、执行固定次数的操作等。例如:计算1到100的和,可以用for i in range(1, 101)。(2分)
②while循环适合循环次数不确定、需要根据条件判断是否继续的情况。例如:反复输入数据直到输入特定值(如-1)为止,或者当满足某个条件时停止循环。(2分)
(共8分)
33. 参考答案:
(1)输入85时,85不满足>=90,但满足>=60,输出"及格"。(2分)
(2)输入59时,59不满足>=90,也不满足>=60,执行else,输出"不及格"。(2分)
(3)使用了分支结构(多分支if-elif-else结构)。(2分)
(4)在"优秀"和"及格"之间增加一个elif判断,修改后的关键语句:
if score >= 90:
print("优秀")
elif score >= 80:
print("良好")
elif score >= 60:
print("及格")
else:
print("不及格")
(2分,关键是增加elif score >= 80的分支,位置正确即可)
五、综合应用题
34. 参考答案:
(1)需要使用的变量:
①n:学生人数(整型);
②score:每次输入的学生成绩(整型);
③total:成绩总和(整型或浮点型,初始值为0);
④avg:平均分(浮点型);
⑤max_score:最高分(整型,初始值可设为0或第一个学生的成绩)。
(答出4个及以上合理变量即可,4分)
(2)需要使用的控制结构:
①顺序结构:输入学生人数、初始化变量、输出结果等步骤按顺序执行。(1分)
②循环结构:需要依次输入n名学生的成绩并累加,使用for循环(或while循环)实现重复操作。(2分)
③分支结构:在输入每个成绩时,需要判断该成绩是否大于当前最高分,如果是则更新最高分,使用if单分支结构。(1分)
(共4分)
(3)Python代码实现:
n = int(input("请输入学生人数:"))
total = 0
max_score = 0
for i in range(n):
score = int(input("请输入第" + str(i+1) + "名学生的成绩:"))
total = total + score
if score > max_score:
max_score = score
avg = total / n
print("平均分:", round(avg, 1))
print("最高分:", max_score)
(代码逻辑正确即可,6分。变量初始化、循环输入、累加、找最大值、计算并输出平均分各占相应分数。输出平均分保留1位小数可用round(avg,1)或格式化输出。)
学科网(北京)股份有限公司
$