浙大疏锦行Python训练营第三天学习打卡
题目1:列表的基础操作
题目:
- 创建一个包含三个字符串元素的列表 tech_list,元素分别为 “Python”, “Java”, “Go”。
- 获取列表中的第一个元素,并将其存储在变量 first_tech 中。
- 向 tech_list 的末尾添加一个新的字符串元素 “JavaScript”。
- 修改 tech_list 中的第二个元素(索引为 1),将其从 “Java” 更改为 “Ruby”。
- 移除列表中的元素 “Go”。
- 计算当前 tech_list 的长度,并将结果存储在变量 current_length 中。
- 最后,使用 f-string 分三行打印出以下信息:
- 获取到的第一个技术名称。
- 列表当前的长度。
- 经过所有操作后,列表最终的内容。
打印格式应类似:
第一个技术是: Python
当前列表长度: 3
最终列表内容: [‘Python’, ‘Ruby’, ‘JavaScript’]
输入:
tech_list = ["Python", "Java", "Go"]
first_tech = tech_list[0]
tech_list.append("JavaScript")
tech_list[1] = "Ruby"
tech_list.remove("Go")
current_length = len(tech_list)
print(f"第一个技术是: {first_tech}")
print(f"当前列表长度: {current_length}")
print(f"最终列表内容: {tech_list}")
输出:
第一个技术是: Python
当前列表长度: 3
最终列表内容: ['Python', 'Ruby', 'JavaScript']
tech_list = ["Python", "Java", "Go"] 这行代码是在 Python 里定义一个列表。列表是一种可变的、有序的数据结构,能够存储多个不同类型的元素。在这个例子中, tech_list 是列表的名称,方括号 [] 表示这是一个列表,而 "Python" 、 "Java" 和 "Go" 是列表中的元素,它们都是字符串类型。简单来说,这行代码创建了一个名为 tech_list 的列表,其中包含三个字符串元素,分别代表三种编程语言。
问:列表里能存储哪些类型的元素?
答:
在 Python 里,列表是一种非常灵活的数据结构,能够存储多种类型的元素。以下是常见的可存储元素类型:
### 基本数据类型
– 整数(int) :如 [1, 2, 3] 。
– 浮点数(float) :如 [1.1, 2.2, 3.3] 。
– 布尔值(bool) :如 [True, False, True] 。
– 字符串(str) :如 ["apple", "banana", "cherry"] 。
– 空值(NoneType) :如 [None, None] 。
### 复合数据类型
– 列表(list) :可嵌套列表,如 [[1, 2], [3, 4]] 。
– 元组(tuple) :如 [(1, 2), (3, 4)] 。
– 字典(dict) :如 [{"name": "Alice"}, {"name": "Bob"}] 。
– 集合(set) :如 [{1, 2}, {3, 4}] 。
### 自定义对象
如果定义了类,也能将类的实例存储在列表中。例如:
class Person:
def __init__(self, name):
self.name = name
people = [Person("Alice"), Person("Bob")]
上述自定义对象的代码的含义不是现在学习的重点,所以先按下不表。
问:Python里[]有那些含义?
答:在Python里,[](方括号)有多种含义:
1. 表示列表 :方括号可用于创建列表,例如 my_list = [1, 2, 3] 。
2. 列表索引和切片 :通过方括号访问列表元素,如 my_list[0] 访问第一个元素;切片操作 my_list[1:3] 可获取部分元素。
3. 字典键访问 :用方括号访问字典中的值,如 my_dict = {'key': 'value'} ,可通过 my_dict['key'] 获取对应的值。
4. 字符串索引和切片 :类似列表,字符串也能用方括号进行索引和切片操作。
题目2:循环for语句
计算1+100的和 用for循环来写
输入:
# 初始化总和变量
result = 0
# 使用 for 循环遍历 1 到 100 的整数
for i in range(1, 101):
result += i
# 打印结果
print(result)
输出:
5050
这里创建了一个名为 result 的变量,并将其初始值设为 0。这个变量将用来存储 1 到 100 的整数累加结果。
– range(1, 101) 会生成一个从 1 开始(包含 1)到 100 结束(包含 100)的整数序列。
– for 循环会依次取出序列中的每个整数,将其赋值给变量 i 。
– result += i 是 result = result + i 的简写形式,意思是将当前的 i 值累加到 result 变量上。
问:为什么range(1, 101)会生成一个从 1 开始(包含 1)到 100 结束(包含 100)的整数序列而不是1到101呢?
答:在 Python 里, range() 函数的设计遵循左闭右开原则,即生成的序列包含起始值,但不包含结束值。当你调用 range(1, 101) 时, 1 是起始值, 101 是结束值,所以生成的序列从 1 开始,到 100 结束(因为不包含 101 )。这样设计的好处是方便和列表索引等场景结合使用,同时能让代码逻辑更清晰。例如,如果你想遍历一个长度为 n 的列表,就可以使用 range(0, n) 来获取所有有效的索引值。以下是简单示例:
问:上文 result += i的result前面为什么要有缩进块?
答:在 Python 里, result += i 前有缩进块是因为它处于 for 循环体中。Python 利用缩进来界定代码块, for 循环里的每一行代码都需要有相同的缩进量,这样 Python 解释器才能知道哪些代码属于循环体,从而在每次循环时执行这些代码。
题目3:判断语句
温度预警系统
1. 定义一个变量temperature存储当前温度(整数)
2. 根据以下条件判断并打印预警信息:
– 高于35度:打印"红色预警:高温天气!"
– 28-35度:打印"黄色预警:天气炎热"
– 20-27度:打印"绿色提示:适宜温度"
– 低于20度:打印"蓝色预警:注意保暖"
3. 使用if-elif-else结构实现
4. 测试用例:用38你的代码
输入:
temperature = 38 # 测试用例,温度为38度
if temperature > 35:
print("红色预警:高温天气!")
elif temperature >= 28:
print("黄色预警:天气炎热")
elif temperature >= 20:
print("绿色提示:适宜温度")
else:
print("蓝色预警:注意保暖")
输出:
红色预警:高温天气!
在 Python 里, elif 是 else if 的缩写,常和 if 、 else 搭配使用,构成条件判断语句。当 if 条件不满足时,程序会检查 elif 里的条件,如果满足就执行 elif 代码块;若都不满足,就执行 else 代码块。在这个例子中, elif 用来检查多个条件,每个 elif 都是在前一个条件不满足时才会被检查。
- 定义一个包含整数的列表 scores,赋值为 [85, 92, 78, 65, 95, 88]。
- 初始化两个变量:excellent_count 用于记录分数大于等于 90 的个数,初始值为 0;total_score 用于累加所有分数,初始值为 0。
- 使用 for 循环遍历 scores 列表中的每一个分数。
- 在循环内部:
- 将当前分数累加到 total_score 变量上。
- 使用 if 语句判断当前分数是否大于等于 90。如果是,则将 excellent_count 变量加 1。
- 循环结束后,计算平均分 average_score(总分除以分数的个数)。
- 使用 f-string 分三行打印出以下信息:
- 优秀分数(>=90)的个数。
- 所有分数的总和。
- 所有分数的平均分(结果包含3位小数)。
打印格式应类似:
优秀分数个数: 3
分数总和: 503
平均分数: 83.833
输入:
# 1. 定义分数列表
scores = [85, 92, 78, 65, 95, 88]
# 2. 初始化变量
excellent_count = 0
total_score = 0
# 3. 遍历列表并计算
for score in scores:
total_score += score # 4a. 累加总分
if score >= 90: # 4b. 统计优秀分数
excellent_count += 1
# 5. 计算平均分
average_score = total_score / len(scores)
# 6. 打印结果
print(f"优秀分数个数: {excellent_count}")
print(f"分数总和: {total_score}")
print(f"平均分数: {average_score:.3f}")
输出:
优秀分数个数: 2
分数总和: 503
平均分数: 83.833
第三天的内容比前两天多了不少,需要注意的点也很多,但仍属于基础内容,需要多花点时间来吃透它们。
作者:企鹅不怕摔