函数的定义

  以下规则

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()
  • 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
  • 函数内容以冒号起始,并且缩进。
  • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None

函数的特性

  • 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
  • 函数能提高应用的模块性,和代码的重复利用率。
  • Python提供了许多【内建函数】,比如print()。
  • 也可以自己创建函数,这被叫做用户【自定义函数】。

  1、减少代码重复

  2、方便修改,可扩展

  3、保持代码一致性,易维护

函数即变量

 # 定义函数
def func():
print("我的函数")
# 函数即变量
print(func) # <function func at 0x04F75E40>
# 调用函数
func() # 我的函数

函数的参数

  • 无参数
  • 形参:
  • 实参:
  • 位置参数【必需参数】:按正确顺序传入
  • 关键参数:
  • 默认参数:
 # 关键参数,必需放置在位置参数之后
# 默认参数,放置在其他参数之后
def print_info(name,age,sex='男'): # 默认参数sex
print("Name:%s,Age:%d,Sex:%s"%(name,age,sex)) # 位置参数【必需参数】
print_info('yuan',18) # Name:yuan,Age:18,Sex:男
# 关键参数
print_info(age=18,name="yuan") # Name:yuan,Age:18,Sex:男
# 默认参数【修改并设置】
print_info('Lucy',18,'女') # Name:Lucy,Age:18,Sex:女
  • 非固定参数

    • *args:把所有【多】传入的【位置】参数都整合到元祖,可为空。
    • **kwargs:把所有【多】传入的【关键】参数都整合到字典,可为空。
 #######################--*args--############################
# 把所有【多】传入的【位置】参数都整合到元祖
def f(*args):
print(args)
f(1,2,(2,4),[6,7]) # (1, 2, (2, 4), [6, 7])
#######################--**kwargs--#########################
# 把所有【多】传入的【关键】参数都整合到字典
def ff(**kwargs):
print(kwargs)
ff(name='yuan',age=18,sex='女')
# {'name': 'yuan', 'age': 18, 'sex': '女'}

函数的返回值

  • 函数中,return 不设置 或 无return 时,系统默认返回None,即 return None。
  • 如果return返回多个对象,那么python会帮我们把对个对象整合成元祖

  设置返回值事,例如:return ‘你好’,调用函数时,返回某个对象,用变量接收。

 def fu():
return "你好" s = fu()
print(s) # 你好

  作用:

    1、结束函数

    2、返回某个对象

Python开发——函数【基础】的更多相关文章

  1. Python开发——1.基础知识

    一.开发 开发语言分为高级语言和低级语言 高级语言:Python.Java.PHP.C++.C#.GO.Ruby等:低级语言:C.汇编语言. 高级语言对应的是字节码,是将代码编译成字节码,然后交给机器 ...

  2. python 17 函数基础(一)

    http://www.cnblogs.com/BeginMan/p/3171977.html 一.什么是函数.方法.过程 推荐阅读:http://www.cnblogs.com/snandy/arch ...

  3. 【Python】函数基础简介

    一.函数 1. 简介 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率. 2. 组成 函数代码块以 def 关键词开头,后接函数名和圆括号( ...

  4. python开发面向对象基础:接口类&抽象类&多态&钻石继承

    一,接口类 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数名)且并未实 ...

  5. PYTHON开发--面向对象基础入门

    面向对象 一:面向对象初级 1.思考:首先在python中,以前我们以前用到的几乎都是函数式编程,但是有时候函数式编程其中代码重复利用率太高,我们往往会把这些重复代码写进一个函数日后去调用,所以呢,今 ...

  6. Python的函数基础

    引子 现在老板让你写一个监控程序,24小时全年无休的监控你们公司网站服务器的系统状况,当cpu\memory\disk等指标的使用量超过阀值时即发邮件报警,你掏空了所有的知识量,写出了以下代码 whi ...

  7. python开发面向对象基础:封装

    一,封装 [封装] 隐藏对象的属性和实现细节,仅对外提供公共访问方式. [好处] 1. 将变化隔离: 2. 便于使用: 3. 提高复用性: 4. 提高安全性: [封装原则] 1. 将不需要对外提供的内 ...

  8. python开发函数进阶:递归函数

    一,什么叫递归 #递归#在一个函数里调用自己#python递归最大层数限制 997#最大层数限制是python默认的,可以做修改#但是我们不建议你修改 例子和尚讲故事 #!/usr/bin/env p ...

  9. python开发调用基础:模块的调用&制作包&软件开发规范

    一,包的调用 #!/usr/bin/env python #_*_coding:utf-8_*_ #调用 glance[1..4]\api\policy.py 路径 # policy.py 内容 # ...

随机推荐

  1. Spring boot 配置 mybatis xml和动态SQL 分页配置

    更新时间 2018年4月30日23:27:07 1.pom.xml <?xml version="1.0" encoding="UTF-8"?> & ...

  2. 兼容ie,火狐的判断回车键js脚本

    var event = window.event || arguments.callee.caller.arguments[0]; var keycode = event.keyCode || eve ...

  3. 对poi-excel导出的浅层理解

    上一篇对excel导入做了浅层的解释,本文将对导出再做浅层解释. 仍然是相同的套路,只不过是反过来而已. 反过来方向理论上本来是这样的:cell-->row-->sheet-->wo ...

  4. 读完这个我懂了JNDI

    转载自:http://私塾在线/forum/blogPost/list/1186.html NDI 是什么 JNDI是 Java 命名与目录接口(Java Naming and Directory I ...

  5. python之路——7

    王二学习python的笔记以及记录,如有雷同,那也没事,欢迎交流,wx:wyb199594 复习 1. 小数据池 int -5---256 str 特殊字符 *202. ASCII码 8位 1字节 - ...

  6. matplotlib绘图总结《转》

    本文作为学习过程中对matplotlib一些常用知识点的整理,方便查找. 类MATLAB API 最简单的入门是从类 MATLAB API 开始,它被设计成兼容 MATLAB 绘图函数. from p ...

  7. HTML/CSS基础知识(三)

    浏览器内核 浏览器内核是浏览器的核心,也称“渲染引擎”,用来解释网页语法并渲染到网页上.浏览器内核决定了浏览器该如何显示网页内容以及页面的格式信息.不同的浏览器内核对网页的语法解释也不同,因此网页开发 ...

  8. JS购物车编辑

    实现了:第一件商品的加减实现了:全选/全不选(使用prop而不是attr)实现了:删除(遮罩层) 未实现:第二件商品的删除未实现:小计及应付款额的初始化(写死的) 计算小数乘法时,要先乘100 < ...

  9. ScrollView滑动到底部或顶部监听,ScrollView滑动到底部或顶部再继续滑动监听;

    ScrollView滑动到底部或顶部后,再继续滑动达到一定距离的监听: ScrollView滑动到底部或顶部的监听: /** * 监听ScrollView滚动到顶部或者底部做相关事件拦截 */ pub ...

  10. JavaWeb——java.lang.UnsatisfiedLinkError

    java.lang.UnsatisfiedLinkError: Native Library sqlite-3.8.6-amd64-sqlitejdbc.dll already loaded in a ...