Python(函数和代码复用)

Python(函数和代码复用)_第1张图片

前言

随着人工智能的不断发展,Python这门计算机语言也越来越重要,很多人都开启了Python的学习,本文就介绍了Python的函数和代码复用的一些内容。


一、实训目的

  • 了解模块化思维
  • 体会函数的作用
  • 掌握函数的定义和调用的方法

二、实训例题

例题1

程序中已经给出某汽车品牌不同车型的销售情况。列表s中的数据是销售量,列表t是对应的车型,其中0表示轿车,1表示SUV,2表示其他。
编写程序统计轿车和SUV的销量之和。(要求调用sum()函数,一行的代码解决)
s=[234,228,75,315,33,243,180,221,235,14,237,230,175,205,76,162,282,104,30,30,16,30,138,301,249,196,208,260,115,173,326,260,269,267,58,42,8,233,124,220,282,240,172,312,205,346,156,236,241,221,326,17,332,114,308,216,77,54,77,187]
t=[1,2,0,2,0,0,1,0,1,1,2,2,0,1,1,0,2,2,0,2,0,2,0,1,0,1,0,2,2,0,2,1,1,2,1,2,2,1,1,2,1,1,1,0,2,2,0,1,0,0,0,2,1,1,0,0,0,1,0,0]
#请在下面位置编写程序

代码如下:

s = [234,228,75,315,33,243,180,221,235,14,237,230,175,205,76,162,282,104,30,30,16,30,138,301,249,196,208,260,115,173,326,260,269,267,58,42,8,233,124,220,282,240,172,312,205,346,156,236,241,221,326,17,332,114,308,216,77,54,77,187]
t = [1,2,0,2,0,0,1,0,1,1,2,2,0,1,1,0,2,2,0,2,0,2,0,1,0,1,0,2,2,0,2,1,1,2,1,2,2,1,1,2,1,1,1,0,2,2,0,1,0,0,0,2,1,1,0,0,0,1,0,0]

total_sales = sum([s[i] for i in range(len(s)) if t[i] == 0 or t[i] == 1])

print("轿车和SUV的销量之和为:", total_sales)

结果如下:

轿车和SUV的销量之和为: 7659

例题2

编写程序实现因式分解,由用户从键盘输入小于1000的整数,对其进行因
式分解。
例如:10=25,60=2235

代码如下:

n = int(input("请输入一个小于1000的正整数:"))
factors = []  # 用于存放分解出来的因子

# 从 2 开始尝试分解
i = 2
while i <= n:
    if n % i == 0:  # 如果 i 是 n 的因子,则加入列表并将 n 更新为 n/i
        factors.append(i)
        n //= i
    else:  # 否则尝试下一个数
        i += 1

# 将结果输出为字符串形式
result_str = str(factors[0])
for factor in factors[1:]:
    result_str += "*" + str(factor)
print(result_str)

结果如下:

请输入一个小于1000的正整数:520
2*2*2*5*13

例题3

编写函数,可以接收任意多个整数并输出其中的最大值和所有整数之和。

代码如下:

def max_and_sum(*args):
    """
    接收任意多个整数并输出其中的最大值和所有整数之和。
    """
    max_num = args[0]  # 初始化最大值为第一个参数
    total_sum = 0  # 初始化总和为 0
    for num in args:
        total_sum += num
        if num > max_num:
            max_num = num
    print(f"最大值为:{max_num}")
    print(f"所有整数之和为:{total_sum}")

# 测试代码
max_and_sum(1, 2, 3, 4, 5)
max_and_sum(10, 20, 30, 40)
max_and_sum(-1, -2, -3, -4, -5)

结果如下:

最大值为:5
所有整数之和为:15
最大值为:40
所有整数之和为:100
最大值为:-1
所有整数之和为:-15

例题4

使用函数进行编程,输入三角形的3条边,看是否能构成三角形。

代码如下:

def is_triangle(a, b, c):
    """
    判断三条边长 a、b、c 是否能够构成三角形。
    如果能够构成三角形,返回 True,否则返回 False。
    """

    # 构成三角形的必要条件为任意两边之和大于第三边
    if a + b > c and a + c > b and b + c > a:
        return True
    else:
        return False

# 测试代码
a = float(input("请输入三角形的第一条边长:"))
b = float(input("请输入三角形的第二条边长:"))
c = float(input("请输入三角形的第三条边长:"))

if is_triangle(a, b, c):
    print("可以构成三角形")
else:
    print("不能构成三角形")

结果如下:

请输入三角形的第一条边长:6
请输入三角形的第二条边长:7
请输入三角形的第三条边长:8
可以构成三角形

例题5

编写函数,求数列1,1,2,3,5,8,13…….第20项。

代码如下:

def fibonacci(n):
    """
    返回斐波那契数列第 n 项的值。
    """
    if n <= 0:
        return None
    elif n == 1 or n == 2:
        return 1
    else:
        return fibonacci(n-1) + fibonacci(n-2)

# 测试代码
result = fibonacci(20)
if result is not None:
    print("斐波那契数列的第 20 项为:", result)
else:
    print("输入有误,请输入一个正整数。")

结果如下:

斐波那契数列的第 20 项为: 6765

例题6

编写函数,判断一个4位数是否为回文数。

代码如下:

def is_palindrome(num):
    """
    判断一个四位数是否为回文数。
    如果是回文数,返回 True,否则返回 False。
    """
    if not isinstance(num, int) or num < 1000 or num > 9999:
        return False  # 输入不合法,直接返回 False

    # 将数字转换成字符串,然后比较翻转后的字符串是否相同
    num_str = str(num)
    reversed_num_str = num_str[::-1]
    if num_str == reversed_num_str:
        return True
    else:
        return False

# 测试代码
num = int(input("请输入一个四位数:"))
if is_palindrome(num):
    print(f"{num} 是回文数。")
else:
    print(f"{num} 不是回文数。")

结果如下:

请输入一个四位数:4554
4554 是回文数。

例题7

编写函数,运行后用户输入4位整数作为年份,判断其是否为闰年。

代码如下:

def is_leap_year(year):
    """
    判断一个年份是否为闰年。
    如果是闰年,返回 True,否则返回 False。
    """
    if not isinstance(year, int) or year < 1000 or year > 9999:
        return False  # 输入不合法,直接返回 False

    if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0):
        return True
    else:
        return False

# 测试代码
year = int(input("请输入一个四位数的年份:"))
if is_leap_year(year):
    print(f"{year} 年是闰年。")
else:
    print(f"{year} 年不是闰年。")

结果如下:

请输入一个四位数的年份:2024
2024 年是闰年。

例题8

使用函数编程,求两个整数的最小公倍数。

代码如下:

def get_lcm(a, b):
    """
    求两个整数 a 和 b 的最小公倍数。
    """
    # 先计算它们的最大公约数,然后用 a*b/gcd(a,b) 计算最小公倍数
    def gcd(x, y):
        if y == 0:
            return x
        else:
            return gcd(y, x % y)

    return a * b // gcd(a, b)

# 测试代码
a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))

lcm = get_lcm(a, b)
print(f"{a}{b} 的最小公倍数为:{lcm}")

结果如下:

请输入第一个整数:12
请输入第二个整数:15
1215 的最小公倍数为:60

三、总结

以上就是今天要讲的内容,本文仅仅简单介绍了Python函数和代码复用的使用,而Python提供了大量能使我们快速便捷地处理数据的函数和方法。

作者主页: 正函数的个人主页
文章收录专栏:Python

欢迎大家点赞 收藏 ⭐ 加关注哦!
如果你认为这篇文章对你有帮助,请给正函数点个赞吧,如果发现什么问题,欢迎评论区留言!!

你可能感兴趣的:(Python,python)