Python编程基础:实验5——函数定义与调用

简介: 有关Python函数定义与调用的一些题目练习。

一、前言

在前面我们刚学习了函数的有关知识,本期博客我们就来趁热打铁,开始有关函数定义与调用相关练习,后续还有一个有关函数的实验练习。

注意:代码仅供参考,还请大家多多思考!

二、我的环境

  • 电脑系统:Windows 11
  • 语言版本:Python 3.10.4
  • 编译器:VSCode

三、实验目的与要求

  1. 掌握函数的定义和使用,函数是一组表达特定功能代码行的封装,能够接收输入并返回处理结果。自定义函数需要用def关键字,自定义函数不能直接运行,必须通过调用函数才能运行。
  2. 理解形参、实参和函数返回值概念,理解函数的参数传递过程,熟练掌握按位置和名称进行参数传递,理解多种不同的形式参数(可选参数、可变数量参数),能根据具体需要选择参数传递形式及函数返回值形式。
  3. 理解变量的作用域概念,掌握局部变量和全局变量的使用方法,能根据具体需要选择使用。

四、实验任务

1、程序填空

【填空7-1】以下程序可以对键盘输入的数进行判断,如果是质数显示True,不是质数显示False,请在代码中横线处补充。

其中math.floor()方法作用是将数字x向下舍入到最接近的整数。

math.sqrt()方法作用是返回数字x的平方根。

importmathdefisPrime(num):
try:
iftype(num) ==type(0.):
raiseTypeErrorr=int(math.floor(math.sqrt(num)))
exceptTypeError:
print('不是一个有效整数')
returnNone# 如果不是有效的整数,返回Noneifnum==1:
returnFalse# 1不是整数,返回Falseforiinrange(2, r+1):
ifnum%i==0:    # 判断一个数是否能被某数整除returnFalsereturnTruedefmain():
x=eval(input("请输入:"))
print(isPrime(x))
main()

它运行的结果是:

请输入:5True

【填空7-2】编写程序,根据给定的折扣率,计算打折后的实际应付金额。请在代码中横线处补充。

deffun(discount):
globalpriceprice=price*discountprice=eval(input("请输入打折前的金额:"))     # price是全局变量fun(0.8)
print("打折后的金额:", price)

它运行的结果是:

请输入打折前的金额:100打折后的金额:80.0

2、程序编程

【编程7-1】排序算法

排序算法是一类经典算法,包括了多种不同的排序方法,冒泡排序法是最基本的一种。编写函数实现冒泡排序算法,主程序提供初始数据、调用排序函数、输出排序后数据。

defbubble_sort(array):
foriinrange(1, len(array)):
forjinrange(0, len(array) -i):
ifarray[j] >array[j+1]:
array[j], array[j+1] =array[j+1], array[j]
returnarrayif__name__=='__main__':
array= [10, 17, 50, 7, 30, 24, 27, 45, 15, 5, 36, 21]
print(bubble_sort(array))

它运行的结果是:

[5, 7, 10, 15, 17, 21, 24, 27, 30, 36, 45, 50]

五、最后我想说

有关函数定义与调用实验就到这里结束了,内容比较少,下一个实验就是函数的递归实验,后面我也会及时更新的,本期实验最后的冒泡排序实现过程需要重点看看,是常考点也是经常会用到的排序算法之一。

Python函数的运用很重要,大家还可以去刷一下其他的题目来继续巩固一下基础知识。

目录
相关文章
|
9月前
|
存储 XML JSON
日常小知识点之序列化结构(protobuf使用及简单原理)
日常小知识点之序列化结构(protobuf使用及简单原理)
235 0
|
数据采集 机器学习/深度学习 监控
【数据挖掘实战】——电力窃漏电用户自动识别
【数据挖掘实战】——电力窃漏电用户自动识别
1695 0
【数据挖掘实战】——电力窃漏电用户自动识别
|
6月前
|
数据可视化
R语言多图合成:优雅地在一个画布上展示多个图形
【8月更文挑战第30天】R语言提供了多种方法来实现多图合成,从基础的`par()`函数到高级的`gridExtra`、`ggplot2`和`cowplot`包,每种方法都有其独特的优势和应用场景。通过掌握这些技术,你可以根据实际需求灵活地组合图形,从而更高效地展示和解读数据。希望本文能为你提供一些有益的参考和启示。
|
9月前
|
运维 监控 Java
面经:Storm实时计算框架原理与应用场景
【4月更文挑战第11天】本文是关于Apache Storm实时流处理框架的面试攻略和核心原理解析。文章分享了面试常见主题,包括Storm的架构与核心概念(如Spout、Bolt、Topology、Tuple和Ack机制),编程模型与API,部署与运维,以及应用场景与最佳实践。通过代码示例展示了如何构建一个简单的WordCountTopology,强调理解和运用Storm的关键知识点对于面试和实际工作的重要性。
573 4
面经:Storm实时计算框架原理与应用场景
|
域名解析 移动开发 监控
mPaas-MGS服务端架构介绍
移动网关服务(Mobile Gateway Service,MGS)是移动开发平台(mPaaS)提供的连接移动客户端与服务端的组件产品。该组件简化了移动端与服务端的数据协议和通讯协议,能够显著提升开发效率和网络通讯效率。
2315 0
mPaas-MGS服务端架构介绍
|
调度 数据库
【Netty】 异步任务调度 ( TaskQueue | ScheduleTaskQueue | SocketChannel 管理 )
【Netty】 异步任务调度 ( TaskQueue | ScheduleTaskQueue | SocketChannel 管理 )
550 0
|
设计模式 敏捷开发 自然语言处理
单元测试,只是测试吗?
推广单元测试,仅仅达到单测覆盖率是远远不够的,我们还要学习写"易于测试"的代码,以及"好"的测试,这样才能让单测真正发挥作用。本文将分享作者关于单元测试的思考与实践。
2403 0
单元测试,只是测试吗?
|
Cloud Native
Open Policy Agent (OPA) 【3】实战
Open Policy Agent (OPA) 【3】实战
Open Policy Agent (OPA) 【3】实战
|
XML 数据可视化 JavaScript
“大数据时代下的地理信息可视化:ECharts地图和数据面板实践“
“大数据时代下的地理信息可视化:ECharts地图和数据面板实践“
684 1
|
6月前
|
存储 安全 大数据
OceanBase 的安全性与合规性
【8月更文第31天】随着大数据时代的到来,数据已经成为企业的核心资产。为了保护这些宝贵的资源,不仅需要强大的技术手段来保证数据的安全,还需要满足各种法律法规的要求。OceanBase 作为一款高性能的分布式关系数据库系统,在设计之初就充分考虑了数据的安全性和合规性需求。本文将深入探讨 OceanBase 如何确保数据的安全,并介绍其符合各种法规要求的方法。
296 1

热门文章

最新文章

推荐镜像

更多