Python期中复习题-编程题
晓嘿君1. 输出1到100之间能被3和5同时整除的数
print("能被3和5同时整除的数有:")
for 数字 in range(1, 101): if 数字 % 3 == 0 and 数字 % 5 == 0: print(数字)
|
解释:
for 数字 in range(1, 101): 就好比 C 语言的 for (int 数字 = 1; 数字 <= 100; 数字++)。
if 数字 % 3 == 0 and 数字 % 5 == 0: 和 C 语言的 if (数字 % 3 == 0 && 数字 % 5 == 0) 逻辑完全一样。
2. 统计字符串中数字、字母和其他字符的个数
输入字符串 = input("请输入一个字符串: ")
数字个数 = 0 字母个数 = 0 其他字符个数 = 0
for 字符 in 输入字符串: if '0' <= 字符 <= '9': 数字个数 = 数字个数 + 1 elif ('a' <= 字符 <= 'z') or ('A' <= 字符 <= 'Z'): 字母个数 = 字母个数 + 1 else: 其他字符个数 = 其他字符个数 + 1
print(f"字母个数: {字母个数}") print(f"数字个数: {数字个数}") print(f"其他字符个数: {其他字符个数}")
|
解释:
for 字符 in 输入字符串: 就像在 C 语言里用 for (int i = 0; i < strlen(输入字符串); i++) { char 字符 = 输入字符串[i]; } 来逐个访问字符。
- Python 的
or 关键字就是 C 语言里的 ||。
3. 生成一个5×5的矩阵
for 行号 in range(5): for 列号 in range(5): print(1, end=" ") print()
|
解释:
- 这个嵌套循环的结构和 C 语言完全相同,用来处理二维结构。
print(..., end=" ") 控制不换行,print() 单独使用就是换行。
4. 输出n行的杨辉三角
行数 = int(input("请输入要打印的行数 n: "))
杨辉三角 = []
for 行号 in range(行数): 当前行 = [] for 列号 in range(行号 + 1): if 列号 == 0 or 列号 == 行号: 当前行 = 当前行 + [1] else: 上一行 = 杨辉三角[行号-1] 新数值 = 上一行[列号-1] + 上一行[列号] 当前行 = 当前行 + [新数值] 杨辉三角 = 杨辉三角 + [当前行]
for 某一行 in 杨辉三角: print(某一行)
|
解释:
- 列表
+ [元素] 的操作,会创建一个包含原列表所有元素和新元素的新列表。这是一种不使用 .append() 方法的替代方案。
6. 将列表中的偶数和奇数分别存入两个新列表
原始列表 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
偶数列表 = [] 奇数列表 = []
for 数字 in 原始列表: if 数字 % 2 == 0: 偶数列表 = 偶数列表 + [数字] else: 奇数列表 = 奇数列表 + [数字]
print(f"原始列表: {原始列表}") print(f"偶数列表: {偶数列表}") print(f"奇数列表: {奇数列表}")
|
解释:
- 这个程序的逻辑和 C 语言中创建三个数组,然后遍历其中一个,根据条件把元素复制到另外两个数组中的做法是一样的。
8. 将英文句子中的单词顺序反转后输出
这个过程会模拟 C 语言的处理方式,稍微复杂一些。
输入句子 = input("请输入一个英文句子: ")
单词列表 = [] 当前单词 = ""
输入句子 = 输入句子 + " "
for 字符 in 输入句子: if 字符 == " ": if 当前单词 != "": 单词列表 = 单词列表 + [当前单词] 当前单词 = "" else: 当前单词 = 当前单词 + 字符
反转后的单词列表 = []
列表长度 = len(单词列表)
for 索引 in range(列表长度 - 1, -1, -1): 反转后的单词列表 = 反转后的单词列表 + [单词列表[索引]]
反转后的句子 = "" for 单词 in 反转后的单词列表: 反转后的句子 = 反转后的句子 + 单词 + " "
print(f"反转后的句子: {反转后的句子[0:-1]}")
|
解释:
- 这个实现非常接近 C 语言的底层逻辑:遍历字符数组找分隔符(空格),把子字符串(单词)存起来,然后倒序处理这些子字符串。
9. 输出n*n的乘法表
乘法表大小 = int(input("请输入一个整数 n: "))
for i in range(1, 乘法表大小 + 1): for j in range(1, i + 1): print(f"{j}*{i}={i*j}", end="\t") print()
|
解释:
- 这里的
i 和 j 就代表行和列的乘数,逻辑和 C 语言的实现完全一样。\t 是制表符,可以帮助对齐。
10. 将字符串中的元音字母(a,e,i,o,u)替换为“*”
输入字符串 = input("请输入一个字符串: ")
元音字母 = "aeiouAEIOU"
结果字符串 = ""
for 字符 in 输入字符串: if 字符 in 元音字母: 结果字符串 = 结果字符串 + "*" else: 结果字符串 = 结果字符串 + 字符
print(f"替换后的字符串: {结果字符串}")
|
解释:
- Python 的
in 关键字非常方便,可以检查一个元素是否存在于一个序列(比如字符串或列表)中。这比在 C 语言里写一个循环来逐个比较要简单得多。
- 因为 Python 字符串不能直接修改,所以我们创建一个新的
结果字符串 来存放修改后的版本,这和 C 语言中创建一个新的 char 数组来存放结果的思路是一致的。