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

软工212汤帅2130110470 2023-春-学生 2023-05-16 16:16:56

一 、函数定义及使用

题目描述

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

输入

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

输出

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

样例

输入:5 3

输出:8 2 15 1.67

参考代码案例如下:

def calculate(x, y):
  1. if y == 0:

  2. return None

  3. else:

  4. return x + y, x - y, x * y, round(x / y, 2)

  5.  
  6. x, y = 5, 3

  7. print(calculate(x, y))

 

可以定义一个名为calculate的函数,代码如下:

def calculate(x, y):

if y == 0:

return None

else:

return x + y, x - y, x * y, round(x / y, 2)

该函数先判断y是否为0,如为0则返回None,否则返回由四个值(x和y的和、差、积和商)组成的元组。

接着,可以输入两个数x和y,并调用calculate函数来计算它们的和、差、积和商。示例代码如下:

x, y = 6, 4

result = calculate(x, y)

if result is not None:

print("{:.2f} {:.2f} {:.2f} {:.2f}".format(*result))

else:

print("y不能为0")

以上代码中,设置x和y的值为5和3,然后调用calculate函数将它们的和、差、积和商计算出来,并赋值给变量result。

最后,判断result是否为None(即y是否等于0),如果不为None则输出四个计算结果并保留两位小数,否则输出“y不能为0”。

输入 6,4

输出10  2 24 1.5

二、Lambda函数

题目描述

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

输入

一个列表和一个数n。

输出

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

样例

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

输出:[7, 9, 11]

参考代码

  1. numbers = [1, 3, 5, 7, 9, 11]

  2. n = 5

  3. greater_than_n = list(filter(lambda x: x > n, numbers))

  4. print(greater_than_n)

可以使用Lambda函数配合filter函数实现:

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]

n = 5

res = list(filter(lambda x: x > n, lst))

print(res)

以上代码中,定义了一个列表lst和一个参数n。然后使用Lambda函数,筛选出lst中所有大于n的数,最后使用list函数将结果转换为列表并输出。运行结果如下:

[6, 7, 8, 9]

 

三、递归函数

题目描述

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

输入

一个正整数n。

输出

一个数,即n的阶乘。

样例

输入:5

输出:120

参考代码:


 
  1. def factorial(n):

  2. if n == 1:

  3. return 1

  4. else:

  5. return n * factorial(n - 1)

  6.  
  7. n = 5

  8. print(factorial(n))

def factorial(n):

if n == 1: return 1

else:

return n * factorial(n-1)

n = 5

result = factorial(n)

print(result)

结果:120

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

163

社区成员

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

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