MoonlightMilk Python Learning

题目列表

   零、入门

1 0.1 向世界问好

0.1 向世界问好

利用python,向世界问好。

 输出 Hello world
2 0.2 问候语

0.2 问候语

输入一个名字,输出'Hello 名字'

样例输入: 张三
样例输出: Hello 张三

   一、变量

3 1.1 整数运算

1.1 整数运算

输入两个数a和b,第一行输出和,第二行输出差,第三行输出积,第四行输出商,第五行输出求商后取,第六行输出次幂,即a^b,第七行输出模,即a除以b的余数

样例输入: 
3
2
样例输出: 
5 (和)
1 (差)
6 (积)
1.5 (商)
1 (整商)
9 (次幂)
1(取模)
4 1.2 银行家舍入法 (有点不一样的四舍五入)

1.2 银行家舍入法 (有点不一样的四舍五入)

输入一个三位小数数(浮点数),使用round(),第一行输出近似的整数,第二行输出保留两位小数的近似结果

样例输入: 
3.866
样例输出: 
4
3.87
5 1.3 字符串清理

1.3 字符串清理

输入一个字符串,去除其首尾空格
第一行输出大写
第二行输出小写
第三行输出每个单词的首字母变成大写的结果

样例输入:
  HElLo woRld  
样例输出:
HELLO WORLD
hello world
Hello World
6 1.4 使用f-string格式化输出

1.4 使用f-string格式化输出

输入姓名和生日年份,用f-string格式和转义符\n输出格式化信息。(今年为2025年)
第一行输出: "My name is 姓名."
第二行输出: "I am 年龄 years old."

样例输入:
Alice
2004
样例输出:
My name is Alice.
I am 21 years old.
7 1.5 f-string保留小数位

1.5 f-string保留小数位

输入一个浮点数,使用f-string格式化输出,保留两位小数。

样例输入:
3.14159
样例输出:
The number is 3.14
8 1.6 正常的四舍五入

1.6 正常的四舍五入

输入一个正小数,输出它四舍五入后的整数。

样例输入:
3.6
样例输出:
4

   二、if语句

9 2.1 判断正负数

2.1 判断正负数

输入一个整数,判断正负。
如果是正数输出“正数”,如果是负数输出“负数”,如果是0输出“0”

样例输入:
10
样例输出:
正数
10 2.2 判断成绩等级

2.2 判断成绩等级

输入考试分数,判断成绩等级。
成绩等级划分如下:

分数范围等级
100Perfect
90-99Excellent
80-89Good
60-79Pass
<60Fail

根据分数输出对应等级:'Perfect'、'Excellent'、'Good'、'Pass' 或 'Fail'。

样例输入:
95
样例输出:
Excellent
11 2.3 判断正负奇偶数与零

2.3 判断正负奇偶数与零

输入一个整数,判断其正负、奇偶性质或是否为零。
分类规则如下:

条件输出
正 (>0), 奇数Positive Odd
正 (>0), 偶数Positive Even
负 (<0), 奇数Negative Odd
负 (<0), 偶数Negative Even
零 (=0)Zero

根据输入整数输出对应描述:'Positive Odd'、'Positive Even'、'Negative Odd'、'Negative Even' 或 'Zero'。

样例输入:
7
样例输出:
Positive Odd

   三、For 循环

12 3.1 打印 0 到 4

3.1 打印 0 到 4

使用 for 循环打印数字 0 到 4,每个数字占一行。

样例输出:
0
1
2
3
4
13 3.2 打印 1 到 5

3.2 打印 1 到 5

使用 for 循环打印数字 1 到 5,每个数字占一行。

样例输出:
1
2
3
4
5
14 3.3 打印 1 到 10 的偶数

3.3 打印 1 到 10 的偶数

使用 for 循环打印 1 到 10 中的所有偶数,每个数字占一行。

样例输出:
2
4
6
8
10
15 3.4 打印 1 到 n 的平方数

3.4 打印 1 到 n 的平方数

输入一个正整数 n,使用 for 循环打印 1 到 n 每个数的平方。

样例输入:
3
样例输出:
1
4
9
16 3.5 打印 n 次 I love Python!

3.5 打印 n 次 I love Python!

输入一个正整数 n,使用 for 循环打印 n 次 "I love Python!",每次占一行。

样例输入:
2
样例输出:
I love Python!
I love Python!

   四、While 循环

17 4.1 使用 while 打印 1 到 5

4.1 使用 while 打印 1 到 5

使用 while 循环打印数字 1 到 5,每个数字占一行。

样例输出:
1
2
3
4
5
18 4.2 使用 while 倒着打印 5 到 1

4.2 使用 while 倒着打印 5 到 1

使用 while 循环从 5 倒着打印到 1,每个数字占一行。

样例输出:
5
4
3
2
1
19 4.3 输入正确密码才退出

4.3 输入正确密码才退出

不断输入密码,直到输入'1234'为止,输入正确时输出 '密码正确'。

样例输入:
1111
0000
1234
样例输出:
密码正确
20 4.4 累计求和直到超过100

4.4 累计求和直到超过100

不断输入数字,累加求和,当总和超过100时停止并输出总和。

样例输入:
20
30
60
样例输出:
总和为: 110
21 4.5 猜数字游戏

4.5 猜数字游戏

内定一个数字7,不断让用户猜数字,猜对输出 '恭喜猜对!'。

样例输入:
5
8
7
样例输出:
恭喜猜对!
22 4.6 统计正整数个数

4.6 统计正整数个数

连续输入整数,直到输入 0 停止,使用 while 循环统计输入的正整数个数。
输出正整数的总数。

样例输入:
1
-2
3
0
样例输出:
2
23 4.7 寻找第一个能被 7 整除的数

4.7 寻找第一个能被 7 整除的数

输入两个正整数 a 和 b,使用 while 循环从 a 开始递增,找到第一个能被 7 整除的数。
输出该数字。(所有测试用例保证有解)

样例输入:
10
20
样例输出:
14
24 4.8 计算阶乘

4.8 计算阶乘

输入一个正整数 n,使用 while 循环计算 n 的阶乘n!
输出阶乘结果。( n! = 1 × 2 × 3 × 4 × ... × n )

样例输入:
5
样例输出:
120

   五、列表

25 5.1 字符串转列表

5.1 字符串转列表

输入一个字符串,使用 list() 函数将其转换为列表。
输出该列表。

样例输入:
abcd
样例输出:
['a', 'b', 'c', 'd']
26 5.2 用range()函数生成列表1

5.2 用range()函数生成列表1

利用range()函数生成如下列表并将其输出:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[2, 4, 6, 8, 10, 12, 14 ,16, 18, 20]

输出:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[2, 4, 6, 8, 10, 12, 14 ,16, 18, 20]
27 5.3 用range()函数生成列表2

5.3 用range()函数生成列表2

利用range()函数生成一个如下列表并将其输出:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

输出:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
28 5.4 访问索引

5.4 访问索引

输入一个字符串,将其转换为列表。
输出列表的第零个元素、第一个元素、最后一个元素和倒数第二个元素,用空格分隔。
(测试用例保证列表元素个数不少于 2)

样例输入:
python
样例输出:
p y n o
29 5.5 访问切片1

5.5 访问切片1

输入一个字符串,将其转换为列表。
第一行输出第二个元素到第六个元素构成的子列表
第二行输出第二个元素到倒数第四个元素构成的子列表。
(测试用例保证列表元素个数不少于 6)

样例输入:
cantabile
样例输出:
['a', 'n', 't', 'a', 'b']
['a', 'n', 't', 'a', 'b', 'i']
30 5.6 访问切片2

5.6 访问切片2

输入一个字符串,将其转换为列表。
输出第一个元素到第七个元素中索引为偶数构成的子列表。
(测试用例保证列表元素个数不少于 9)

样例输入:
pythonabcde
样例输出:
['p', 't', 'o']
31 5.7 用切片 [::-1] 将列表反转

5.7 用切片 [::-1] 将列表反转

输入一个字符串,将其转换为列表,使用切片 [::-1] 将列表反转。
输出反转后的列表。

样例输入:
sunflower
样例输出:
['r', 'e', 'w', 'o', 'l', 'f', 'n', 'u', 's']
32 5.8 用 .append() 方法给列表添加新元素

5.8 用 .append() 方法给列表添加新元素

输入一个字符串,将其转换为列表,然后使用 append() 方法向列表末尾添加一个新元素,该元素的值为 'x'。
输出修改后的列表。

样例输入:
awesome
样例输出:
['a', 'w', 'e', 's', 'o', 'm', 'e', 'x']
33 5.9 用 .append() 方法构建列表

5.9 用 .append() 方法构建列表

第一行输入一个非负整数 n,表示接下来要输入的整数个数。然后输入 n 行,每行输入一个整数,使用 .append() 方法将其存入列表。
输出最终的列表。如果 n=0,输出空列表。

样例输入:
3
10
20
30
样例输出:
[10, 20, 30]
34 5.10 用 .insert() 方法给列表插入值

5.10 用 .insert() 方法给列表插入值

输入一个字符串,将其转换为列表,然后使用 .insert() 方法在索引 2 的位置插入字母 'x'.
输出修改后的列表。

样例输入:
delight
样例输出:
['d', 'e', 'x', 'l', 'i', 'g', 'h', 't']
35 5.11 用 .pop() 方法删除列表末尾值

5.11 用 .pop() 方法删除列表末尾值

输入一个字符串,将其转换为列表,然后使用 pop() 方法移除列表的最后一个元素。
输出修改后的列表。

样例输入:
glorious
样例输出:
['g', 'l', 'o', 'r', 'i', 'o', 'u']
36 5.12 用 .pop() 方法根据索引删除列表值

5.12 用 .pop() 方法根据索引删除列表值

输入一个字符串,将其转换为列表,然后使用 .pop() 方法移除索引 2 的元素。
输出修改后的列表。

样例输入:
terrific
样例输出:
['t', 'e', 'r', 'i', 'f', 'i', 'c']
37 5.13 用 .remove() 方法根据值删除列表值

5.13 用 .remove() 方法根据值删除列表值

输入一个字符串,将其转换为列表,然后使用 remove() 方法移除列表中第一个出现的字母 'e'。
输出修改后的列表。(测试用例保证至少含一个 'e')

样例输入:
spectacular
样例输出:
['s', 'p', 'c', 't', 'a', 'c', 'u', 'l', 'a', 'r']
38 5.14 用 .clear() 清空列表

5.14 用 .clear() 清空列表

输入一个字符串,将其转换为列表,第一行输出该列表
第二行输出使用 clear() 方法清空后的列表。

样例输入:
fabulous
样例输出:
['f', 'a', 'b', 'u', 'l', 'o', 'u', 's']
[]
39 5.15 用 .extend() 方法合并列表

5.15 用 .extend() 方法合并列表

输入一个字符串,将其转换为列表,然后使用 .extend() 方法将预定义的列表 ['x', 'y', 'z'] 添加到原列表末尾。
输出扩展后的列表。

样例输入:
charming
样例输出:
['c', 'h', 'a', 'r', 'm', 'i', 'n', 'g', 'x', 'y', 'z']
40 5.16 用 .split() 方法分割列表

5.16 用 .split() 方法分割列表

输入一个英文句子,使用 .split() 方法将其按空格分割为单词列表。
输出该单词列表。

样例输入:
The sun shines brightly today
样例输出:
['The', 'sun', 'shines', 'brightly', 'today']
41 5.17 用 .split() 方法根据特定字符分割列表

5.17 用 .split() 方法根据特定字符分割列表

输入一个英文字符串,使用 split() 方法以字母 'e' 作为分隔符将字符串分割为子字符串列表。
输出分割后的列表。(测试用例保证字符串至少包含一个 'e')

样例输入:
welcome
样例输出:
['w', 'lcom', '']
42 5.18 用 map() 函数将列表元素转换类型1

5.18 用 map() 函数将列表元素转换类型1

输入一个英文句子,使用 .split() 方法按空格分割为单词列表,然后使用 map() 函数将每个单词转换为大写。
输出转换后的列表。

样例输入:
Life is a beautiful journey
样例输出:
['LIFE', 'IS', 'A', 'BEAUTIFUL', 'JOURNEY']
43 5.19 用 map() 函数将列表元素转换类型2

5.19 用 map() 函数将列表元素转换类型2

输入一行以逗号分隔的若干个整数,将每个整数存入列表中,第一行输出该列表。
然后使用 map() 函数将所有列表中元素转换为整数类型,第二行输出转换后的列表。

样例输入:
1,2,3,4,5
样例输出:
['1', '2', '3', '4', '5']
[1, 2, 3, 4, 5]
44 5.20 用 map() 函数将列表元素转换类型3

5.20 用 map() 函数将列表元素转换类型3

输入一行以空格分隔的若干个整数,将每个整数存入列表中,然后使用 map() 函数将所有列表中元素转换为整数类型
输出转换后的列表

样例输入:
15 27 36 48 59
样例输出:
[15, 27, 36, 48, 59]
45 5.21 用 len() 函数获取列表元素个数

5.21 用 len() 函数获取列表元素个数

输入一个英文单词,将其转换为列表,用 len() 函数获取该列表的长度。
输出一个整数,表示字符列表的长度。

样例输入:
cheerful
样例输出:
8
46 5.22 用 .count() 方法统计元素个数

5.22 用 .count() 方法统计元素个数

输入一个英文单词,将其转换为列表,然后使用 .count() 方法统计字母 'e' 的个数。
输出一个整数,表示字母 'e' 的出现次数。

样例输入:
serenity
样例输出:
4
47 5.23 用 .index() 方法查找列表值的索引

5.23 用 .index() 方法查找列表值的索引

输入一个英文单词,将其转换为列表,然后用 .index() 方法找到第一个字母 'e' 的索引。
输出一个整数,表示字母 'e' 的索引。(测试用例保证单词至少包含一个 'e')

样例输入:
delight
样例输出:
1
48 5.24 用 .sort() 方法给列表排序

5.24 用 .sort() 方法给列表排序

输入若干个整数,以空格分隔,将其存入列表中。第一行输出原始列表,第二行输出升序排序后的列表,第三行输出逆序排序后的列表。
每次输出占一行。

样例输入:
23 12 45 9 31
样例输出:
[23, 12, 45, 9, 31]
[9, 12, 23, 31, 45]
[45, 31, 23, 12, 9]
49 5.25 用 .reverse() 方法反转列表

5.25 用 .reverse() 方法反转列表

输入若干个整数,以空格分隔,将其存入列表中。
第一行输出原始列表,第二行输出用 .reverse() 方法反转后的列表。

样例输入:
17 29 36 48 53
样例输出:
[17, 29, 36, 48, 53]
[53, 48, 36, 29, 17]
50 5.26 用 sum() 函数对数列元素求和

5.26 用 sum() 函数对数列元素求和

输入若干个整数,以空格分隔,将其存入列表中。第一行输出原始列表,第二行用 sum() 函数输出列表中所有整数的和。

样例输入:
18 25 37 46 52
样例输出:
[18, 25, 37, 46, 52]
178
51 5.27 用 max() 和 min() 函数获取列表最大值和最小值

5.27 用 max() 和 min() 函数获取列表最大值和最小值

输入一行以空格分隔的若干个整数,将其存入列表。第一行输出原始列表,第二行输出列表中的最大值,第三行输出列表中的最小值。

样例输入:
42 19 67 33 56
样例输出:
[42, 19, 67, 33, 56]
67
19
52 5.28 for 循环遍历列表1: 统计列表中偶数个数

5.28 for 循环遍历列表1: 统计列表中偶数个数

输入一行以空格分隔的若干个整数,将其存入列表。
使用 for 循环遍历列表,统计偶数的个数。
输出一个整数,表示偶数的个数。

样例输入:
12 45 32 18 27
样例输出:
3
53 5.29 for 循环遍历列表2: 输出列表中大于50的元素个数

5.29 for 循环遍历列表2: 输出列表中大于50的元素个数

输入一行以空格分隔的若干个整数,将其存入列表。
使用 for 循环遍历列表,输出所有大于 50 的元素个数。

样例输入:
45 62 78 33 51
样例输出:
3
54 5.30 while 循环遍历列表1: 统计列表中偶数个数

5.30 while 循环遍历列表1: 统计列表中偶数个数

输入一行以空格分隔的若干个整数,其存入列表。使用 for 循环遍历列表,统计偶数的个数。
输出一个整数,表示偶数的个数。(测试用例保证输入包含至少 5 个整数)

样例输入:
12 45 32 18 27
样例输出:
3
55 5.31 while 循环遍历列表2: 将列表元素乘以2

5.31 while 循环遍历列表2: 将列表元素乘以2

输入一行以空格分隔的若干个整数,将其存入列表。使用 while 循环遍历列表,将每个元素乘以 2,存入新列表。
输出新列表。

样例输入:
13 24 35 46 57
样例输出:
[26, 48, 70, 92, 114]
56 5.32 用 .join() 方法格式化输出1

5.32 用 .join() 方法格式化输出1

输入一行以空格分隔的若干个整数,将其存入列表。将每个元素加 5 后,用 join() 方法转换为字符串,拼接为以分号分隔的字符串。
输出拼接后的字符串。

样例输入:
20 35 14 62 28
样例输出:
25;40;19;67;33
57 5.33 用 .join() 方法格式化输出2

5.33 用 .join() 方法格式化输出2

输入一行以空格分隔的若干个整数。
以空格分隔,输出按照升序排序的结果。

样例输入:
5 12 8 20 15
样例输出:
15 36 24 60 45

   六、阶段性综合练习(一)

58 6.1 学生成绩统计

6.1 学生成绩统计

输入一行以空格分隔的若干学生成绩(整数),将其存入列表。计算并输出三项内容:
1. 平均分(保留2位小数)
2. 最高分
3. 及格人数(分数 ≥ 60)
每次输出占一行。

样例输入:
85 92 78 65 45
样例输出:
73.00
92
3
59 6.2 超速识别系统

6.2 超速识别系统

输入一行以空格分隔的若干车速数据(整数)。找出超速车辆的编号。
超速: 速度 > 60
编号: 从左到右,从 1 开始
输出超速车辆的编号,编号间以空格分隔;如果没有超速车辆,输出 0。

样例输入:
55 63 59 75 60
样例输出:
2 4
60 6.3 更新水果库存

6.3 更新水果库存

原库存列表为 ['apple', 'banana', 'orange', 'grape', 'mango']
输入一行以空格分隔的卖出水果。从原库存中移除卖出水果
输出更新后的库存列表。(测试用例保证卖出水果至少 1 个,且均为原库存中的有效水果)

样例输入:
banana orange
样例输出:
['apple', 'grape', 'mango']
61 6.4 BMI 计算器

6.4 BMI 计算器

输入身高(米)和体重(公斤),以空格分隔,计算 BMI 值(体重 / 身高^2,保留 2 位小数),并根据 BMI 范围输出健康建议:
- BMI < 18.5:体重过轻,建议增加营养。
- 18.5 ≤ BMI < 25:正常体重,保持健康生活方式。
- 25 ≤ BMI < 30:超重,建议控制饮食和增加运动。
- BMI ≥ 30:肥胖,建议咨询医生并调整生活方式。
输出 BMI 值和健康建议,格式为 'BMI: 值 建议: 健康建议'。(测试用例保证输入为有效的浮点数)

样例输入:
1.75 70
样例输出:
BMI: 22.86 建议: 正常体重,保持健康生活方式
62 6.5 解一元二次方程

6.5 解一元二次方程

输入一元二次方程 ax² + bx + c = 0 的三个参数 a, b, c(以空格分隔),计算方程的解。判别式 Δ = b² - 4ac:
- 若 Δ > 0,输出两个实根(升序,保留 2 位小数),格式为 'x1 = 值, x2 = 值'。
- 若 Δ = 0,输出一个实根,格式为 'x = 值'。
- 若 Δ < 0,输出 '无实根'。
(测试用例保证 a ≠ 0,输入为有效的浮点数)

提示: x 的平方根等于 x 的二分之一次方
            解一元二次方程的一般公式为:  x = (-b ± √(b² - 4ac)) / (2a)

样例输入:
1 -3 2
样例输出:
x1 = 1.00, x2 = 2.00