4.1.1《Python的常量和变量》粤教版(2019)数据与计算必修1-课后练习(含解析)

资源下载
  1. 二一教育资源

4.1.1《Python的常量和变量》粤教版(2019)数据与计算必修1-课后练习(含解析)

资源简介

Python的常量和变量算法基础 练习题
(粤教版·必修一《数据与计算》)
一、单选题(共15题,每题5分,共75分)
1. 在Python中,下列选项中属于合法变量名的是(  )
A. 2var
B. var-name
C. _var
D. if
2. 在Python中,关于常量的说法正确的是(  )
A. 常量的值在程序运行过程中可以改变
B. Python中没有真正意义上的常量,通常用全大写字母命名表示“不应改变”
C. 常量必须使用const关键字声明
D. 常量只能存储数值类型的数据
3. 执行以下代码后,屏幕上输出的结果是(  )
```python
x = 5
y = x
x = 10
print(y)
```
A. 5
B. 10
C. 15
D. 报错
4. 下列变量名中,不符合Python命名规范(PEP 8)但语法上合法的是(  )
A. student_name
B. studentName
C. StudentName
D. _student_name
5. 在Python中,以下赋值语句正确的是(  )
A. a, b = 1, 2, 3
B. a = b = 1
C. a = 1; b = 2; c = 3
D. B和C都正确
6. 关于Python变量,下列说法错误的是(  )
A. 变量在使用前必须先赋值
B. 变量可以随时重新赋值为不同类型的数据
C. 变量的命名区分大小写,age和Age是两个不同的变量
D. 变量的数据类型在声明时确定,之后不可改变
7. 下列Python语句中,创建了常量的是(  )
A. PI = 3.14
B. const PI = 3.14
C. final PI = 3.14
D. define PI 3.14
8. 已知 Python 代码:
```python
a = 3
b = 4
a, b = b, a
print(a, b)
```
运行结果是(  )
A. 3 4
B. 4 3
C. 3 3
D. 4 4
9. 以下哪个变量名的命名风格通常用来表示常量?(  )
A. maxValue
B. MaxValue
C. MAX_VALUE
D. max_value
10. 下列代码运行后,变量x的值是(  )
```python
x = 2
x = x + 1
x += 2
```
A. 2
B. 3
C. 5
D. 6
11. 下列关于Python变量的说法,正确的是(  )
A. 变量的类型一旦确定就不能改变
B. 同一个变量可以先后存储整数、字符串和列表
C. Python中的变量需要提前声明类型
D. 变量名可以以数字开头
12. 执行以下代码后,输出结果是(  )
```python
num = 10
NUM = 20
print(num + NUM)
```
A. 10
B. 20
C. 30
D. 报错
13. 在Python中,下列赋值操作错误的是(  )
A. x, y, z = 1, 2, 3
B. x = y = z = 1
C. x = 1; y = 2; z = 3
D. x, y = 1, 2, 3
14. 阅读以下程序段,其输出结果是(  )
```python
a = "hello"
b = a
a = "world"
print(b)
```
A. hello
B. world
C. helloworld
D. 报错
15. 在Python中,变量名_abc(下划线开头)是(  )
A. 非法变量名,不能以下划线开头
B. 合法变量名,通常表示私有属性或特殊用途
C. 只有系统才能使用的特殊变量
D. 只能存储数值类型
二、填空题(共10题,每题2分,共20分)
1. 在Python中,变量命名不能以__________开头,只能以字母或下划线开头。
2. 变量的值可以改变,而__________的值在程序运行中保持不变。
3. 执行语句 `x, y, z = 10, 20, 30` 后,变量y的值是__________。
4. 在Python中,通常用__________字母的命名方式来标识常量,如 `PI = 3.14159`。
5. 语句 `a = a + 1` 的简写形式是__________。
6. Python中,变量名 `student_name` 采用的是__________命名法(小写字母加下划线)。
7. 执行 `a = 5` 后,再执行 `a = "hello"`,变量a的数据类型从int变成了__________。
8. 语句 `a = b = c = 10` 实现了__________赋值,三个变量的值都是10。
9. 在Python中,合法的变量名由字母、数字、下划线组成,但不能以__________开头,且不能是__________。
10. 执行代码 `x = 7; y = x; x = 9; print(y)` 的输出结果是__________。
三、情景作答题(共3题)
情景一:热力公司温控程序中的常量与变量
某热力公司开发了一个智能供暖控制系统。程序中设定了供暖目标温度 `TARGET_TEMP = 22`(单位:℃),并设置了当前室温变量 `current_temp`,系统会根据当前室温与目标温度的差值动态调节阀门开度。
问题:
1. 在上述描述中,`TARGET_TEMP` 和 `current_temp` 哪个更适合定义为常量?为什么?(4分)
2. 程序员在写代码时,不小心将 `TARGET_TEMP = 22` 写成了 `target_temp = 22`,这会导致什么问题?结合Python常量命名习惯分析。(4分)
3. 如果程序中需要临时记录三个房间的当前温度,分别赋值 21.5、22.3、19.8,请用一条语句完成这三个变量的赋值,并写出代码。(4分)
情景二:小明学习变量赋值的困惑
小明在学习Python变量时写了以下代码,但结果和他预想的不一样:
```python
a = 3
b = a
b = b + 2
print(a, b)
```
他以为输出是 `5 5`,但实际运行后输出是 `3 5`。请回答:
1. 解释为什么变量 `a` 的值没有变成5?这体现了Python变量赋值的哪个特点?(6分)
2. 如果小明想要让 `a` 和 `b` 同时增加2,即输出 `5 5`,应该如何修改代码?(4分)
3. 请用生活中的比喻(例如:便利贴、盒子、标签等)向小明解释Python中变量与值的关系。(5分)
情景三:图书管理系统的数据登记(创新实践)
某校图书馆开发了一个简易的图书借阅登记系统。需要用变量存储以下信息:书名、作者、出版年份、是否借出(True/False)、每日逾期罚款金额(固定为0.5元)。请完成以下任务:
问题:
1. 请为上述五项信息分别定义合适的变量(或常量),并写出相应的赋值语句,注意命名规范。(5分)
2. 其中每日逾期罚款金额在系统运行期间不会改变,应该用哪种命名风格来表示?为什么?(4分)
3. 运行一段时间后,图书馆决定将逾期罚款调整为每日0.8元。如果当初你将罚款金额定义成了常量风格,修改时是否需要更改代码?请说明常量与变量在该场景下的利弊。(6分)
参考答案与解析
一、单选题答案解析
1. C
解析:Python变量名可以以下划线开头(`_var` 合法)。A 不能以数字开头;B 不能包含连字符 `-`;D 不能使用关键字 `if`。
2. B
解析:Python没有内置的常量语法,通常约定全大写字母命名表示“不应改变”。A 常量不应改变;C Python不需要const;D 常量可以存储任何类型。
3. A
解析:`y = x` 将x当前的值5赋给y,之后x改为10不影响y,所以输出5。
4. B
解析:PEP 8推荐变量用小写加下划线(snake_case),`studentName`(驼峰)语法合法但不推荐;A和D符合规范;C首字母大写通常表示类名。
5. D
解析:B 链式赋值正确;C 分号分隔语句正确;A 变量和值的数量不匹配;D正确。
6. D
解析:Python是动态类型语言,变量类型可以随时改变。A 使用前必须赋值;B 可重新赋值为不同类型;C 大小写敏感;D 类型可改变。
7. A
解析:Python中全大写变量名(如PI)按惯例视为常量,但语法上仍是变量。B、C、D都不是Python语法。
8. B
解析:`a, b = b, a` 交换两个变量的值,执行后a=4,b=3。
9. C
解析:全大写加下划线(`MAX_VALUE`)是PEP 8推荐的常量命名风格。
10. C
解析:`x=2` → `x=2+1=3` → `x+=2`即`x=3+2=5`。
11. B
解析:A Python动态类型,类型可改变;B 正确;C 不需要声明类型;D 不能以数字开头。
12. C
解析:变量名区分大小写,`num`和`NUM`是两个不同变量,10+20=30。
13. D
解析:D 左边2个变量,右边3个值,数量不匹配。A、B、C均正确。
14. A
解析:`b = a` 使b指向字符串"hello",之后a指向"world",b不变,输出"hello"。
15. B
解析:以下划线开头的变量名合法,通常用于表示“私有”属性或特殊变量(如`_name`)。
二、填空题答案解析
1. 数字
解析:变量名不能以数字开头,但可以包含数字。
2. 常量
解析:常量的值在程序运行中不应改变。
3. 20
解析:多重赋值按顺序对应,y对应20。
4. 全大写
解析:如`MAX_SIZE = 100`。
5. a += 1
解析:赋值运算符的简写形式。
6. 蛇形(snake_case)
解析:Python官方推荐的变量命名风格。
7. str(字符串)
解析:动态类型允许变量指向不同类型。
8. 链式
解析:将同一个值赋给多个变量。
9. 数字;关键字
解析:如`if`、`for`等不能作为变量名。
10. 7
解析:`y = x`时x=7,y=7;x改为9不影响y。
三、情景作答题答案解析
情景一:热力公司温控程序
1. 常量与变量的区分
`TARGET_TEMP`更适合定义为常量。因为供暖目标温度在整个供暖季通常固定不变,而`current_temp`会随室温实时变化。常量用于存储程序运行期间不应改变的数据,变量用于存储动态变化的数据。
2. 命名错误的影响
程序员将`TARGET_TEMP`写成小写`target_temp`后,命名风格不再表明它是“不应改变”的常量。其他程序员在阅读代码时可能误以为这是一个可变的变量,后续可能无意中修改它的值,导致供暖目标温度被意外改动,影响系统稳定性。Python中常量命名全大写是一种“约定”,起到提示作用,但语法上不阻止修改。
3. 一条语句完成三个变量赋值
```python
temp1, temp2, temp3 = 21.5, 22.3, 19.8
```
或解包赋值。
情景二:小明学习变量赋值的困惑
1. 为什么a没有变成5
代码执行过程:
`a = 3`:变量a指向整数3
`b = a`:让b也指向整数3
`b = b + 2`:计算b+2得5,然后将b重新指向5,a仍指向3
所以a不变。
这体现了Python中变量是对象的引用(标签),赋值是改变引用的指向,而不是修改值本身。整数是不可变类型,`b + 2`创建了新的整数对象5。
2. 修改代码得到5 5
```python
a = 3
a = a + 2
b = a
print(a, b)
```

```python
a = 3
b = a
a = a + 2
b = b + 2
print(a, b)
```
3. 生活比喻
可以把变量想象成“标签”,把值想象成“物品”。执行`a = 3`,就像在值3上贴了一个标签a;`b = a`就像又拿一个标签b也贴到值3上;`b = b + 2`计算得5,然后把标签b从3撕下来贴到5上。标签a始终贴在3上,所以a还是3。变量只是贴在值上的“标签”,改变一个标签的位置不影响其他标签。
情景三:图书管理系统数据登记
1. 定义变量并赋值
```python
book_name = "Python编程入门" 书名
author = "王小波" 作者
publish_year = 2023 出版年份
is_borrowed = False 是否借出
LATE_FEE_PER_DAY = 0.5 每日逾期罚款(常量)
```
(变量名可根据实际书名修改,符合命名规范即可)
2. 罚款金额的命名风格
应该用全大写加下划线:`LATE_FEE_PER_DAY = 0.5`。因为每日逾期罚款金额在系统运行期间固定不变,全大写命名是Python社区的常量约定,能清晰表明该值不应被修改,提高代码可读性。
3. 从常量改为变量时的利弊
利:使用常量风格能提醒程序员不要随意修改罚款金额,减少意外错误;代码语义清晰。
弊:当需求变更需要调整罚款金额时,如果当初按常量风格定义,仍然需要修改代码(因为Python中没有真正的常量,修改语法上可行但违背约定)。更好的做法是将罚款金额存储在配置文件或数据库中,通过变量读取,这样无需改代码即可调整。
本题场景:如果直接写成变量(如`late_fee_per_day = 0.5`),修改时只需改一处赋值即可;但如果写成全大写常量风格,修改同样简单(因为Python不强制常量),但阅读者会疑惑“明明是常量为什么要改”。建议:频繁变化的参数定义为变量,真正固定不变的(如数学常数π)才用常量风格。

展开更多......

收起↑

资源预览