当前位置: 首页 > news >正文

python 基础语法 - 函数(一)

函数

一、函数

1、函数的概念

函数(function)是将具有独立功能的代码块组织成一个整体,使其具有特殊功能的代码集。

2、函数的作用

使函数可以加强代码的复用性,提高程序编写的效率。

3、无参数函数的语法格式
定义格式:
def 函数名():
    函数体
    ......
复制代码
调用格式:
函数名()
复制代码
def demo():
    print("hello python")
demo()
复制代码
4、有参数函数的语法格式
定义格式:
def 函数名(参数):
    函数体
    ......
复制代码
调用格式:
函数名(参数)
复制代码
def demo(a):
    print(a)
demo(4)
复制代码
4、有返回值函数的语法格式
定义格式:
def 函数名(参数):
    函数体
    return 函数运行结果返回值
    ......
复制代码
调用格式:
变量名 = 函数名(参数)
复制代码
def test1():
    print("这个可以返回一个值,在函数外部可以用一个变量接收")
    # return 在函数中用于返回值
    return 1
# sum1 用于接受函数返回的值 
sum1 = test1()
# 用于打印接收到的值
print(sum1)
复制代码
6、函数定义和调用规则

定义规则:

  • 函数必须先定义,后调用。否则程序将会报错。

调用规则:

  • 函数定义部分的代码仅用于声明函数,只有调用时才会执行函数里面的代码。
7、函数文档注释
  • 文档注释可以为函数添加功能说明,方便开发人员查阅相关函数信息。

二、参数

1、参数的作用
  • 使用参数可以将函数需要用的数据传递到函数中,方便函数调用,是函数更具有灵活性。
2、形参和实参
  • 形参是函数定义是规定的参数,仅在函数体内有效
  • 实参是函数调用时使用的参数,该值将传递给函数

三、返回值

1、返回值的作用
  • 为函数指定运行的结果值,该值将返回到函数调用位置
2、注意事项

1、如果一个函数没有设置返回值,那么用一个变量去接收,那么接收到的值是 None。

2、同一个函数执行过程中只能执行一次return语句,执行return语句后,return后面的内容将不再执行,函数执行完毕。

四、作用域

1、作用域
  • 数据可以使用的范围称作数据的作用域。
2、函数参数的作用域
  • 函数参数(形参)的作用域是从函数定义位置开始到函数定义结束位置
  • 注意:函数间不能共享参数(形参)
3、变量的作用域
  • 局部变量:函数内部定义的变量从函数定义位置开始到函数定义结束位置有效
  • 全局变量:函数外部定义的变量,从变量定义位置开始,在整个文件中有效
4、注意事项
  • 1、如果局部变量(函数内部定义的变量)与全局变量(函数外部定义的变量)产生冲突,可以提升局部变量为全局变量,使用时先声明再使用
  • 2、提升局部变量为全局变量的语法格式:global 变量名

五、函数间调用

1、函数间调用的概念
  • 在一个函数中调用另一个函数的过程成为函数间调用
2、函数间调用的语法格式
  • 函数间调用的语法格式同函数的基本调用格式,特殊之处在于书写位置使在一个函数体内调用另一个函数
"""
任意三位数求平均值
"""
def add(a, b):
    """求两个数的和"""
	return a + b

def avg(a, b, c):
	"""求三个数的平均值"""
	d = add(a, b)  # 在一个函数里面调用另一个函数
	return (d + c)/3
avg3 = avg(3, 6, 9)  # 传三个数求平均值
print(avg3)
复制代码

转载于:https://juejin.im/post/5c07c5346fb9a049d05d857d

相关文章:

  • Mysql在sql中截取时间类型字段的年月日
  • 小议C#接口的隐式与显示实现
  • 【node】搭建自己的博客开坑(一)——项目的构思与设计——(后端部分)
  • linux内核管理--之定制一个属于自己的小型系统
  • 十二月技术考核:Windows系统故障排查
  • Android 之 内存管理
  • 尝试使用Open Live Writer写博客
  • 敏捷 扑克上的时间估算(转)
  • 码云新增GVP(最有价值)项目(10、11月合辑) | 码云周刊第 90 期
  • 您应该了解的 Windows Azure 网站在线工具
  • 多维数组拍平一层
  • Go语言的接口
  • IE9、 Firefox、Safari, Chrome的CSS3圆角属性
  • 2018年终总结_四年计算机科班学习经验分享+半年工作感悟
  • python获得环境变量
  • [iOS]Core Data浅析一 -- 启用Core Data
  • 《剑指offer》分解让复杂问题更简单
  • 230. Kth Smallest Element in a BST
  • 3.7、@ResponseBody 和 @RestController
  • CSS 三角实现
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • HTTP--网络协议分层,http历史(二)
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • in typeof instanceof ===这些运算符有什么作用
  • Javascripit类型转换比较那点事儿,双等号(==)
  • JavaScript设计模式之工厂模式
  • Magento 1.x 中文订单打印乱码
  • php中curl和soap方式请求服务超时问题
  • Unix命令
  • webpack+react项目初体验——记录我的webpack环境配置
  • 力扣(LeetCode)21
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 首页查询功能的一次实现过程
  • 译米田引理
  • 走向全栈之MongoDB的使用
  • MyCAT水平分库
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ​Linux·i2c驱动架构​
  • #define,static,const,三种常量的区别
  • (39)STM32——FLASH闪存
  • (python)数据结构---字典
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转)大道至简,职场上做人做事做管理
  • (转)人的集合论——移山之道
  • .naturalWidth 和naturalHeight属性,
  • .NET CLR基本术语
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .NET框架设计—常被忽视的C#设计技巧
  • /etc/skel 目录作用
  • @Autowired和@Resource装配
  • @Documented注解的作用
  • @SuppressWarnings(unchecked)代码的作用
  • @transactional 方法执行完再commit_当@Transactional遇到@CacheEvict,你的代码是不是有bug!...