Python程序设计作业3: 函数及应用

软工214—金鑫 2023-春-学生 2023-05-21 19:52:56

作业要求:

1. 在自己的Python编程环境里,编程实现上述三道练习题,最好和参考答案代码不一样。

2. 测试运行你自己编写的代码和参考答案代码。

3. 如果测试运行时候,你的代码出现Bug,分析原因并调试代码。

一 、函数定义及使用

题目描述

设计一个函数,输入两个参数x和y,返回它们的和、差、积、商(商保留两位小数)。如果y等于0,则返回None。

输入

两个数x和y,其中y不能为0。

输出

四个数,分别为x和y的和、差、积、商(保留两位小数)。

样例

输入:5 3

输出:8 2 15 1.67

def arithmetic_operations(x, y):
    if y == 0:
        return None
    sum = x + y
    difference = x - y
    product = x * y
    quotient = round(x / y, 2)
    return sum, difference, product, quotient
result = arithmetic_operations(5, 3)
print(result)

这个函数与之前的函数相比,只是将 if-else 语句移到了函数的开头,这样可以减少代码的缩进层数。当 y 等于 0 时,它会直接返回 None,否则计算和、差、积和商,并将它们作为元组返回,可以像之前一样调用这个函数 。

二、Lambda函数

题目描述

设计一个Lambda函数,输入一个列表和一个参数n,返回列表中所有大于n的数。

输入

一个列表和一个数n。

输出

一个列表,包含所有大于n的数。

样例

输入:[1, 3, 5, 7, 9, 11], 5

输出:[7, 9, 11]

greater_than_n = lambda lst, n: [x for x in lst if x > n]
lst = [1,3,5,7,9,11]
n = 5
result = greater_than_n(lst, n)
print(result)

这个 Lambda 函数使用了列表推导式,在列表中筛选出大于 n 的数,并将它们作为一个新列表返回,可以这样调用这个 Lambda 函数 。

三、递归函数

题目描述

设计一个递归函数,输入一个正整数n,返回n的阶乘。

输入

一个正整数n。 

输出

一个数,即n的阶乘。

样例

输入:5

输出:120

def factorial(n):
    result = 1
    for i in range(1, n+1):
        result *= i
    return result
n = 5
result = factorial(n)
print(result)

这个函数使用了循环迭代来计算 n 的阶乘。它初始化一个变量 result 为 1,然后用一个 for 循环从 1 到 n 遍历整数,并将每个整数乘以 result。最后,它返回 result,可以这样调用这个函数 。

...全文
47 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

163

社区成员

发帖
与我相关
我的任务
社区描述
软件工程老师
python 高校 江苏省·南通市
社区管理员
  • juking@ntu
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧