函数的定义

  以下规则

  • 函数代码块以 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. icomoon:生成字体图标的方法并应用

    字体图标任意缩放不会失真,也大大减少请求数量,非常好用. 在线生成工具:https://icomoon.io/app/#/select 在线SVG图库(阿里),  用于导入:http://www.ic ...

  2. C++类中this指针的理解

    先要理解class的意思.class应该理解为一种类型,象int,char一样,是用户自定义的类型.用这个类型可以来声明一个变量,比如int x, myclass my等等.这样就像变量x具有int类 ...

  3. G2 绘制混合图例 demo

    G2 绘制混合图例 demo import G2 from '@antv/g2'; import DataSet from '@antv/data-set'; // G2 对数据源格式的要求,仅仅是 ...

  4. 【mysql】mysql触发器使用示例

    mysql触发器 时间点:before/after 触发事件: update/delete/insert 时间点+触发事件:构成一个完整的触发器的触发时机: 一个触发时机最多只能由1个Trigger: ...

  5. IIC时序详解

    Verilog IIC通信实验笔记 Write by Gianttank 我实验的是 AT24C08的单字节读,单字节写,页读和页写,在高于3.3V系统中他的通信速率最高400KHZ的,我实验里用的是 ...

  6. django补充和form组件

    Model常用操作: - 参数:filter - all,values,values_list [obj(id,name,pwd,email),obj(id,name,pwd,email),] mod ...

  7. 用GDB调试程序(七)

    改变程序的执行——————— 一旦使用GDB挂上被调试程序,当程序运行起来后,你可以根据自己的调试思路来动态地在GDB中更改当前被调试程序的运行线路或是其变量的值,这个强大的功能能够让你更好的调试你的 ...

  8. 200用户的并发用户配置(CSV)

    我来解释一下为什么标题是,设置多个参数对浏览器进行访问,原本想写成对app或者web,但是我想只要有参数的地方无聊是app或者web或者小程序,都是可以用到设置参数的. 第一步:在线程组下添加参数配置 ...

  9. Linux配置Supervisor 配置遇到的坑

    在linux中web 应用部署到线上后之后发现退出终端后网站就无法访问了 所以需要用Supervisor来守护进程,它可以保证应用一直处于运行状态,在遇到程序异常.报错等情况,导致 web 应用终止时 ...

  10. Jenkins部署报weblogic.deploy.api.tools.deployer.DeployerException: Java heap space

    Jenkins部署报weblogic.deploy.api.tools.deployer.DeployerException: Java heap space异常 解决办法: 在MAVEN_OPTS中 ...