• Python例题练习1


    1.两数四则运算

    def add(a, b):
        """两数相加"""
        return a + b
    
    
    def sub(a, b):
        """两数相减"""
        return a - b
    
    
    def mul(a, b):
        """两数相乘"""
        return a * b
    
    
    def div(a, b):
        """两数相除"""
        try:
            return a / b
        except Exception as e:
            print(e)
    
    
    if __name__ == "__main__":
        a = 3
        b = 5
        print(add(a, b))  # 8
        print(sub(a, b))  # -2
        print(mul(a, b))  # 15
        print(div(a, b))  # 0.6
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    2.数字的阶乘

    """
    阶乘是指从1到n的连续自然数相乘的积。
    一个正整数的阶乘是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!
    """
    
    
    def factorial(num):
        """求阶乘"""
        if 0 <= num <= 2:
            if num <= 1:
                return 1
            return num
        else:
            return factorial(num - 1) * num
    
    
    if __name__ == '__main__':
        print(factorial(0))  # 1
        print(factorial(1))  # 1
        print(factorial(3))  # 6
        print(factorial(5))  # 120
        print(factorial(10))  # 362880
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    3.计算圆的面积和周长

    import math
    
    
    def area_circle(r):
        """计算圆的面积"""
        area = math.pi * r * r
        return round(area, 2)
    
    
    def perimeter_circle(r):
        """计算圆的周长"""
        perimeter = math.pi * 2 * r
        return round(perimeter, 2)
    
    
    if __name__ == '__main__':
        r = 3
        print(area_circle(r))  # 28.27
        print(perimeter_circle(r))  # 18.85
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    4.求区间内的所有素数

    """
    素数只能被1和自己本身整除
    """
    
    
    def is_prime(num):
        """判断是否是素数"""
        if num in (1, 2):
            return True
        for index in range(2, num):
            if num % index == 0:
                return False
        return True
    
    
    def get_primes(begin, end):
        """输出区间内的素数"""
        primes = []
        for number in range(begin, end + 1):
            if is_prime(number):
                primes.append(number)
        return primes
    
    
    if __name__ == '__main__':
        list1 = get_primes(3, 35)
        print(list1)
        # [3, 5, 7, 11, 13, 17, 19, 23, 29, 31]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    5.求前N个数的平方之和

    def count_square(num):
        """计算平方和"""
        count = 0
        for i in range(1, num + 1):
            count += i * i
        return count
    
    
    if __name__ == '__main__':
        print(count_square(3))  # 14
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    6.计算列表中的数字之和

    def sum_of_list(num_list):
        """计算列表数字之和"""
        total = 0
        for i in num_list:
            total += i
        return total
    
    
    if __name__ == '__main__':
        list1 = [1, 2, 3, 6, 8]
        print(sum_of_list(list1))  # 20
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    7.范围内的所有偶数

    # author:mlnt
    # createdate:2022/8/11
    def get_even_numbers(begin, end):
        """获取区间内的偶数"""
        even_numbers = []
        for number in range(begin, end + 1):
            if number % 2 == 0:
                even_numbers.append(number)
        return even_numbers
    
    
    if __name__ == '__main__':
        list1 = get_even_numbers(3, 35)
        print(list1)
        # [4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34]
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    8.温度转换

    """
    摄氏温度转华氏温度的公式为 celsius * 1.8 = fahrenheit - 32
    """
    
    
    def temperature_converter(temp):
        """温度转换"""
        if temp[-1] in ['F', 'f']:
            # 摄氏温度
            celsius = (eval(temp[0:-1]) - 32) / 1.8
            print("转换后的温度是{:.22f}C".format(celsius))
        elif temp[-1] in ['C', 'c']:
            # 华氏温度
            fahrenheit = 1.8 * eval(temp[0:-1]) + 32
            print("转换后的温度是{:.2f}F".format(fahrenheit))
        else:
            print("格式错误")
    
    
    if __name__ == '__main__':
        temp_str = input("请输入带有符号的温度值(F/f:华氏温度;C/c:摄氏温度):")
        temperature_converter(temp_str)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    9.判断闰年

    """
    判定公历闰年应遵循的一般规律为:四年一闰,百年不闰,四百年再闰.
    非正百年:能被4整除  --> year % 100 != 0 and year % 4 == 0
    整百年:能被400整除 -- > year % 400 == 0
    """
    
    
    def is_leap_year(year):
        """判断是否是闰年"""
        if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
            return True
        return False
    
    
    if __name__ == '__main__':
        print(is_leap_year(2000))  # True
        print(is_leap_year(2008))  # True
        print(is_leap_year(2020))  # True
        print(is_leap_year(2021))  # False
        print(is_leap_year(2022))  # False
        print(is_leap_year(2024))  # True
        print(is_leap_year(2084))  # True
        print(is_leap_year(2800))  # True
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    10.九九乘法表

    for i in range(1, 10):
        for j in range(1, i + 1):
            print(f'{j}x{i}={j * i}', end='\t')
        print()
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    11.斐波那契数

    def get_fibonacci_num(num):
        """获取第num个斐波那契数"""
        if num <= 2:
            return 1
        return get_fibonacci_num(num - 1) + get_fibonacci_num(num - 2)
    
    
    def fibonacci_sequence(n):
        """斐波那契数列"""
        fibonacci_list = []
        for i in range(1, n + 1):
            fibonacci_list.append(get_fibonacci_num(i))
        return fibonacci_list
    
    
    if __name__ == '__main__':
        # print(get_fibonacci_num(1))
        # print(get_fibonacci_num(2))
        # print(get_fibonacci_num(3))
        # print(get_fibonacci_num(5))
        # print(get_fibonacci_num(10))
        print(fibonacci_sequence(1))
        print(fibonacci_sequence(2))
        print(fibonacci_sequence(3))
        print(fibonacci_sequence(10))
        print(fibonacci_sequence(15))
    # [1]
    # [1, 1]
    # [1, 1, 2]
    # [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
    # [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    12.最大公约数算法

    """
    最大公约数,也叫最大公因数,指两个或多个共有因数中最大的一个
    """
    
    
    def hcf(a, b):
        """最大公因数"""
        result = 1
        if a > b:
            a, b = b, a
        for i in range(1, a + 1):
            if a % i == 0 and b % i == 0:
                result = i
        return result
    
    
    print(hcf(3, 9))   # 3
    print(hcf(12, 16))  # 1
    print(hcf(42, 96))  # 1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    13.最小公倍数算法

    def lcm(a, b):
        """最小公倍数"""
        if a > b:
            # 如果a>b,则交换a、b的值
            a, b = b, a
        for i in range(b, a * b + 1):
            if i % a == 0 and i % b == 0:
                result = i
                break
        return result
    
    
    print(lcm(3, 9))  # 9
    print(lcm(12, 16))  # 48
    print(lcm(42, 96))  # 672
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    14.翻转列表

    def reverse_list(num_list):
        """翻转列表"""
        return [i for i in reversed(num_list)]
    
    
    def reverse_list2(num_list):
        """翻转列表"""
        num_list.reverse()
        return num_list
    
    
    list1 = [1, 3, 5, 6, 7, 9, 2]
    print(reverse_list(list1))  # [2, 9, 7, 6, 5, 3, 1]
    print(reverse_list2(list1)) # [2, 9, 7, 6, 5, 3, 1]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    15.列表去重

    def duplicate_remove(num_list):
        """列表去重"""
        new_list = []
        for num in num_list:
            if num not in new_list:
                new_list.append(num)
        return new_list
    
    
    list1 = [1, 2, 'php', 3, 4, 6, 2, 'java', 'c', 'python', 6, 'php']
    print(duplicate_remove(list1))
    # [1, 2, 'php', 3, 4, 6, 'java', 'c', 'python']
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    16.统计元素在列表中出现的次数

    def count_occur_times(list1, element):
        """统计元素出现次数"""
        count = 0
        for i in list1:
            if i == element:
                count += 1
        return count
    
    
    list1 = [2, 3, 5, 3, 9, 13, 6, 6, 8, 9]
    num1 = 3
    num2 = 6
    num3 = 12
    print(count_occur_times(list1, num1))  # 2
    print(count_occur_times(list1, num2))  # 2
    print(count_occur_times(list1, num3))  # 0
    print(list1.count(3))  # 2
    print(list1.count(6))  # 2
    print(list1.count('s'))  # 0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    参考:

  • 相关阅读:
    蓝桥杯练习题十三 - 猜字母(c++)
    <AVL树>——《C++高阶》
    网络安全中的欺骗攻击与防御技术
    Django初窥门径-自定义用户模型
    【万字长文】使用 LSM Tree 思想实现一个 KV 数据库
    QUIC协议包头保护(四)
    【C++】抽象类和虚基类,虚函数和纯虚函数
    日志输出-查看 SQL:深入分析 MyBatis 执行过程
    获取Linux内核源码
    VM使用-pin针同心度检测
  • 原文地址:https://blog.csdn.net/username666/article/details/126289838