【python】15个经典Python实训题目(附源代码)

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=' ')

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值