动手敲代码远比啃书有效得多!!初学 Python 的时候,千万别背书记语法,自己上手敲一道代码题就都会了!
精选 Python 经典练习代码(附题目 + 分析 + 完整代码)
题目
有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
分析
可填在百位、十位、个位的数字都是 1、2、3、4。组成所有的排列后再去掉不满足条件的排列。
代码
for i in range(1, 5):for j in range(1, 5):for k in range(1, 5):if(i != k)and(i != j)and(j != k):print(i, j, k)
题目
一个整数,它加上 100 后是一个完全平方数,再加上 268 又是一个完全平方数,请问该数是多少?
分析
在 10 万以内判断,先将该数加上 100 后再开方,再将该数加上 268 后再开方。如果开方后的结果满足条件,即是结果。
代码
import mathfor i in range(10000): # 转化为整型值 x = int(math.sqrt(i + 100)) y = int(math.sqrt(i + 268))if (x * x == i + 100) and (y * y == i + 268): print(i)
题目
输出 9*9 口诀乘法表。
分析
分行与列考虑,共 9 行 9 列,i 控制行,j 控制列。
代码
for i in range(1,10):for j in range(1,10): result = i * jprint('%d * %d = %-3d' % (i, j, result))print()
题目
学习使用按位或:|。
分析
按位或的运算规则:0|0=0; 0|1=1; 1|0=1; 1|1=1
代码
a = 0o77 # 八进制数在Python 3中以 '0o' 开头b = a | 3 # 位运算 ORprint('a | b is %d' % b)b |= 7 # 位运算 ORprint('a | b is %d' % b)
题目
用选择排序算法给 10 个数字排序。
分析
选择排序是最简单的排序算法,即从后 9 个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后 8 个进行比较,并交换。
代码
if __name__ == "__main__": N = 10 # 输入数据 print('please input ten numbers:\n') l = [] # 列表的声明,注意 'l' 是小写字母 for i in range(N): l.append(int(input('input a number:\n'))) print("\nBefore sorting:") for i in range(N): print(l[i]) # 选择排序算法 for i in range(N - 1): min_index = i for j in range(i + 1, N): if l[min_index] > l[j]: min_index = j l[i], l[min_index] = l[min_index], l[i] # 交换最小值到当前 i 的位置 print("\nAfter sorted:") for i in range(N): print(l[i])
题目
有两个磁盘文件 A 和 B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件 C 中。
分析
将这两个文件的内容合并,转换为一个列表。这个列表被排序,然后转换回字符串。建议使用with语句来打开文件,操作完成后文件会自动关闭,更安全。
代码
if __name__ == '__main__': with open('JCP099.py') as f1, open('JCP098.py') as f2: a = f1.read() b = f2.read() l = list(a + b) l.sort() s = "".join(l) with open('C.txt', 'w') as f: f.write(s)
内容太多了,我已经整理好了剩下的 94 道经典 Python 练习题,以及有很多像「网络爬虫」「数据分析」「游戏开发」这样的实战项目。需要的,直接在后台回复「123」,把完整的代码合集发你!(无偿分享)
核心学习心法
✅ 拒绝死记硬背: 语法不用背,敲一遍代码就记住了。
✅ 动手才是王道: 刷 10 道题,比看 100 页书管用。
✅ 循序渐进提升: 从基础到进阶,100 道题覆盖核心知识点。