2023(春)Python程序设计作业3: 函数及应用

软工214-524-郭晓钢 2023-春-学生 2023-05-19 14:32:20

一 、函数定义及使用

题目描述

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

输入

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

输出

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

样例

输入:4,7

输出:11,-3,28,0.57

实现代码如下:

def calculate(x, y):
    if y == 0:
        return None
    else:
        return x + y, x - y, x * y, round(x / y, 2)
x, y = 4,7
print(calculate(x, y))

 

二、Lambda函数

题目描述

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

输入

一个列表和一个数n。

输出

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

样例

输入:[1,7,11,19,66,88,101]

输出:

实现代码如下:

numbers = [1,7,11,19,66,88,101]
n = 33
greater_than_n = list(filter(lambda x: x > n, numbers))
print(greater_than_n)

 

三、递归函数

题目描述

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

输入

一个正整数n。

输出

一个数,即n的阶乘。

样例

输入:9

输出:362880

实现代码如下:

def factorial(n):
    if n == 1:
        return 1
    else:
        return n * factorial(n - 1)
n = 9
print(factorial(n))

 

四、调试过程遇到的问题所涉及的细知识点

1、函数定义及使用

1 使用format 格式化函数时,返回的是一个string型参数,需要显式转换成浮点型参数

2 函数返回多个参数时会以元组的形式返回,需要借助迭代器来遍历,而enumerate函数的每一个item是一个元组,(在迭代器中的索引号,值),打印值时需要指定下标【1】来返回值

2、Lambda函数

1 用到filter()函数来过滤出大于n的元素,参数:filter(函数,序列),而filter()函数返回的是filter类型,需要列表就要通过list()进行转换

3、递归函数

 

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

162

社区成员

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

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