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

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

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

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]

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

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

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]

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)

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

10.九九乘法表

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

在这里插入图片描述

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]

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

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

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]

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']

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

参考:
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦里逆天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值