【Python】15个经典实训题目附源代码
目录
Python是目前最好的编程语言之一。由于其可读性和对初学者的友好性,已被广泛使用。那么要想学会并掌握Python,可以实战的练习项目是必不可少的。接下来,我将给大家介绍15个非常实用的Python项目,帮助大家更好的学习Python。本文中的代码仅供大家参考。如果文章有帮助到您,感谢您的关注与支持!
1、求1 3 5 7 9的阶乘和
def jiec(n):
if n == 1:
return 1
else:
return jiec(n - 1) * n
total = 0
for i in range(1, 10, 2):
total += jiec(i)
print(total)
2、过滤多余空格
my_str = input()
new_str = my_str.split()
word = "".join(new_str)
print(word)
3、求自然常数e的近似值
import math
def jiec(n):
if n == 1:
return 1
else:
return n * jiec(n - 1)
total = 0
for i in range(1, 300):
num = 1 / jiec(i)
total += num
if num < math.pow(10, -5):
print(i)
break
print(total)
4、统计数字字符个数
def digit(s):
count = 0
for i in range(len(s)):
m = s[i]
if m.isdigit():
count += 1
return count
string = input()
n = digit(string)
print(n)
5、统计大小写字母个数
def count(str):
num1, num2 = 0, 0
for i in str:
if i.isupper():
num1 += 1
elif i.islower():
num2 += 1
print("该字符串", str, "中有", num1, "个大写字母", num2, "个小写字母")
if __name__ == '__main__':
string = input("please enter:")
count(string)
6、百钱买百鸡
for i in range(100):
for j in range(100):
for k in range(100):
if (5 * i + 3 * j + 1 / 3 * k) == 100 and (i + j + 3 * k) == 100:
print("公鸡", i, "母鸡", j, "小鸡", k)
7、求特殊自然数
一个自然数,它的七进制与九进制表示形式都是三位数,且七进制与九进制的三位数顺序正好相反。求此自然数
for a in range(1, 7):
for b in range(7):
for c in range(7):
if c + b * 7 + a * 49 == a + b * 9 + c * 81:
print(c + b * 7 + a * 49)
print(str(a) + str(b) + str(c))
print(str(c) + str(b) + str(a))
8、水仙花数
输出水仙花数,所谓水仙花数是指1个3位数,其各位立方和等于该数
for i in range(100, 1000):
a = i // 100 # 个位数
b = (i - a * 100) // 10 # 十位数
c = i - a * 100 - b * 10
if pow(a, 3) + pow(b, 3) + pow(c, 3) == i:
print(i)
9、斐波那契数列
def func(n):
if n == 1 or n == 2:
return 1
else:
return func(n - 1) + func(n - 2)
n = int(input("please enter a number:")) # 输入需要求的前n项(建议前50数字越大运行时间越长)
for i in range(1, n):
m = func(i)
print(m,end=' ')
10、回文数
回文数是一个正向和逆向都相同的整数,如89798、123454321、423324,编写函数判断一个整数是否是回文数。(字符串)
def hws(n):
a1 = ''.join(reversed(n))
if a == a1:
print(a + "是回文数")
if __name__ == '__main__':
a = str(input("enter:"))
hws(a)
11、最大跨度
num = input("please enter:")
number = num.split()
m = max(number)
n = min(number)
kd = int(m) - int(n)
print("最大跨度为:", kd)
12、同构数
找出1与100之间的全部“同构数”。“同构数”是这样一个数,它出现在它的平方数的右端。例如,5的平方是25,5是25右端的数,5就是同构数,25也是一个同构数,它的平方是625。
for n in range(1,101):
old_str = str(n)
new_str = str(int(math.pow(n, 2)))
if str(new_str).endswith(old_str):
print(old_str+'是同构数')
13、分数序列
def func(n):
a = 2.0 # 第一项分子
b = 1.0 # 第一项分母
total = 0
for i in range(1, n + 1):
total += a / b
a, b = a + b, a
print("分数序列的前%d项之和为:" % n)
print(total)
if __name__ == '__main__':
m = int(input("please enter n:\n"))
func(m)
14、判断回文串
old_string = input()
new_string = old_string[::-1]
if old_string == new_string:
print(old_string, "是回文串")
else:
print("error")
15、求100-1000素数
def IsPrime(n):
if n == 2:
return 1
elif n % 2 == 0 or n == 1:
return 0
else:
for i in range(2, n):
if n % i == 0:
return 0
break
else:
return 1
break
if __name__ == '__main__':
for i in range(100, 1000):
res = IsPrime(i)
if res == 1:
print(i, end=' ')
作者:代码不休肝