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

目录

  • 1、求1 3 5 7 9的阶乘和
  • 2、过滤多余空格
  • 3、求自然常数e的近似值
  • 4、统计数字字符个数
  • 5、统计大小写字母个数
  • 6、百钱买百鸡
  • 7、求特殊自然数
  • 8、水仙花数
  • 9、斐波那契数列
  • 10、回文数
  • 11、最大跨度
  • 12、同构数
  • 13、分数序列
  • 14、判断回文串
  • 15、求100-1000素数
  • 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=' ')
    
    

    作者:代码不休肝

    物联沃分享整理
    物联沃-IOTWORD物联网 » 【Python】15个经典实训题目附源代码

    发表回复