超级详细干货!350道Python练习题(基础·实用)

文摘   2024-10-14 10:23   山西  

Python

近期,不少朋友向我咨询Python的习题资料。于是,小黄鸭为大家整理出来了完整350道Python的练习题目。

这些题目不仅覆盖了Python的基础知识,也涉及了一些进阶的算法问题。大家可以根据个人进度选择适合的题目进行练习。

内容包括:数据类型篇、基础语法篇、内置函数篇、 字符串方法、 排序算法篇、简单算法篇、中等难度算法篇、地狱难度算法篇。

值得一提的是,每道题目后都附有详尽的解答和步骤分析,供大家参考。不妨一试身手,看看自己的Python水平究竟如何~

【文末领取】

一共350道(附答案及解析),练完你就牛了!

1、求最大公约数和最小公倍数。难度:容易

两个数的最大公约数是两个数的公共因子中最大的那个数;两个数的最小公倍数

则是能够同时被两个数整除的最小的那个数。

输入:(120 和 60 是通过键盘输的)

x = 120

y = 60

输出:

60 和 120 的最大公约数是:60

60 和 120 的最小公倍数是:120

答案:

1 x = int(input('x = '))2 y = int(input('y = '))34 # 如果 x 大于 y 就交换 x 和 y 的值5 if x > y:6 # 通过下面的操作将 y 的值赋给 x, 将 x 的值赋给 y7 temp = y8 y = x9 x = temp10 # 从两个数中较的数开始做递减的循环1112 for factor in range(x, 0, -1):13 if x % factor == 0 and y % factor == 0:14 print('{}和{}的最大公约数是:{}' .format(x, y, factor))15 print('{}和{}的最小公倍数是:{}' .format(x, y, x * y // factor))16 break

2、斐波那契数列 难度:容易

斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数

列:1、1、2、3、5、8、13、21、34、……。在数学上,费波那契数列是以递归的方法来定义:

F1 = 1 (n=1)

Fn = F[n-1]+ F[n-2](n=>2)

输入:(数字 10 是通过键盘输的)

请输入需要打印的斐波那契数列的数据个数(从 1 开始):10

输出:(每一个数据项之间用空格)

1 1 2 3 5 8 13 21 34 55

答案:

1 def fib(n):2 a, b = 1, 13 #通过循环来打印数据4 for i in range(n):5 print(a,end = " ")6 temp = a7 a = b8 b = temp+b9 num = int(input("请输入需要打印的斐波那数列的数据个数(从 1 开始):"))10 fib(num)

5、求年龄 难度:容易

有 5 个人坐在一起,问第五个人多少岁?他说比第 4 个人大 2 岁。问第 4 个

人岁数,他说比第 3 个人大 2 岁。问第三个人,又说比第 2 人大两岁。问第 2

个人,说比第一个人大两岁。最后问第一个人,他说是 10 岁。请问第五个人多

大?

输入:

输出:第五个人的年龄

答案:

1 def age(n):2 if n == 1:3 c = 104 else:5 c = age(n - 1) + 26 return c7 print ("第五个人的年龄是:",age(5))

9、百钱百鸡问题 难度:容易

百钱百鸡是我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值

钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几

何?翻译成现代文是:公鸡 5 元一只,母鸡 3 元一只,小鸡 1 元三只,用 100

块钱买一百只鸡,问公鸡、母鸡、小鸡各有多少只?

输入:

输出:(有多个答案,下面的只是其中一个答案)

公鸡: 0 只, 母鸡: 25 只, 小鸡: 75 只

答案:

1 for x in range(0, 20):2 for y in range(0, 33):3 z = 100 - x - y4 if 5 * x + 3 * y + z / 3 == 100:5 print('公鸡: {}只, 母鸡: {}只, 小鸡: {}只' .format (x, y, z))


38、求满足条件的两位数 难度:容易

809*??=800*??+9*?? 其中??代表的两位数, 809*??为四位数,8*??的结果为两

位数,9*??的结果为 3 位数。求??代表的两位数,及 809*??后的结果。

809 乘以一个两位数等于 800 乘以这个两位数加上 9 乘以这个两位数。而且 8

乘以这个两位数的结果也是两位数。

输入:

输出:

9708=809*12 = 800*12+9*12

答案:

1 a = 8092 for i in range(10, 100):3 b = i * a4 if b >= 1000 and b < 10000 and 8 * i < 100 and 9 * i >= 100:5 print(b, ' = 800 * ', i, ' + 9 * ', i)

43、老王卖瓜 难度:容易

老王卖瓜,自卖自夸。第 1 个顾客来了,买走了他所有西瓜的一半又半个;第 2

个顾客来了,又买走了他剩余西瓜的一半又半个......当第 9 个顾客来时,它已经

没有西瓜可以卖了。请问老王原来有多少个西瓜?

输入:

输出:

老王原有西瓜 255 个

答案:

1 n = 02 i = 13 while i <= 8:4 n = (n + 0.5) * 25 i = i + 16 print('老王原有西瓜{}个' .format(int(n)))

......

内容很多,不方便一一展示。PDF版本打包好了~

领取方式:

公众号后台回复:Python练习题 免费领取~


投身实践,方能发现不足,赶快行动起来亲自尝试吧!











小黄鸭编程
分享Python、Java、前端、大数据、人工智能等程序员必备资料,在这里可以获得最全的编程资料。
 最新文章