---恢复内容开始---

函数:

1 减少重复代码

2 定义一个功能,需要直接调用

3 保持代码一致性

def  funcation_name(参数s):

  功能代码块0

参数可以为多个,传入时按照前后顺序进行掺入,定义时为形参,实际传入的为实参。形参有几个,就需要传入多少实参。

函数名字必须以下划线或者字母开头,区分大小写,不能使用保留字(大致和变量的命令规则一致)

f() 调用f函数,调用一定记得加()

def  f(a,b)

f(a,b) 必须参数,需要按照定义顺序进行参数的传递

f(b='123',a='1a') 关键字参数,可以使用(关键字)对应关系进行实参的传递,

def  f(a,b,sex =male)

f(a,b) 当参数符合默认设定的关键字时,调用时可以不用加这个参数,但是当不符合默认参数时调用就必须传进来,f(a,b,female)

不定长参数

def jf(*args/**kargs):

  sum = 0

  for i in args

  sum+=i  print(sum)

*args使用元组进行参数传入,*kargs采用字典(键值对)的方式进行传入

def jf(*args)
  print(args) jf(*[1,2,3]) 加一个*号,可以使列表里每一个元素作为一个参数。 def jf(**kwargs)
  print(kwargs) jf(*{a:b,c:d}) 加** 可以直接以字典的键值对作为参数传入。
jf(1,2,3,4,5,6)
def jf(*args,**kwargs):
for i in kwargs:
print('%s :%s'%(i,kwargs[i])) jf(a=1,c=2,b=3,d=4,e=5,f=7)
关于不定长参数的位置关系:有命名参数必须放在无命名参数后面(*args必须放在**kwargs前面)

---恢复内容结束---

#############

return 定义函数返回值

def f():

  print('OK')

  return 10

a = f()

print(a)

注意点:

1 函数如果没有return ,默认返回None.

2 return可以返回多个对象,但是会封装成一个对象(元组)返回

3 函数到return 就意味着函数已经执行结束。

############

函数的作用域:

函数内部的变量只在函数内部执行以及调用,在函数外部是无法被调用的。

L:local 局部作用域

E:enclosing (嵌套作用域)

G: global 全局变量(全局作用域)

B built-in 系统内部固定模块里面的变量,如int等,搜索变量的顺序优先级顺序依次是:作用域局部>外层作用域>当前模块的全局>python内置作用域,

注意:

  局部作用域不能修改全部变量,局部作用域想要修改全部变量,必须先要声明(global 变量)

  在local层里修改,enclosing层里的变量,需要加上nonlocal.进行声明。

模块,内,函数才能引入新作用域

对于变量而言,内部作用域才能声明才能覆盖外部变量,不声明的话直接使用,

#########

高阶函数

函数本身是个对象,函数名是个变量,可以对函数名进行赋值

函数名可以作为函数参数,可以作为函数的返回值

def foo3():
def inner():
return 8
return inner print(foo3) 高阶函数
def f(n)
  return n*n
def foo3(a,b,func):
return func(a)+func(b) foo3(1,2,f) ##########
递归函数
def fact(n):
if n == 1 :
return 1
return n*fact(n-1)
print(fact(10))
1:自己调用自己
2:有结束条件
但凡递归可以写的循环都可以解决。
递归效率在一定情况下效率是很底的。
斐波那契数列
0 1 1 2 3 5 8 13 21 34 55

python语法_函数的更多相关文章

  1. Python基本语法_函数属性 & 参数类型 & 偏函数的应用

    目录 目录 前言 软件环境 Python Module的程序入口 函数的属性 Python函数的创建 函数的参数 必备参数 缺省参数 命名参数 不定长参数 匿名参数 偏函数的应用 前言 Python除 ...

  2. python语法之函数

    函数: 将特定功能代码编写在一个函数里 便于阅读和复用 对一组表达特定功能表达式的封装 使程序模块化 python内置函数: input(),print(),eval()... 函数定义 函数语法格式 ...

  3. Python基础_函数2

    在介绍完函数的大体概念如定义.传参.作用域之后,本节主要介绍函数的几个细节部分. 一. print()函数与return的区别. 相同点:print与return都是向用户在输出界面上展示结果 不同点 ...

  4. python语法join函数

    Python语法中join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串. vid = )

  5. Python基本语法_函数_返回值

    目录 目录 前言 函数的返回值 在函数中Return和Print的区别 函数中的文档 前言 函数的返回值是函数重要的组成部分.函数的根本在于实现程序的部分功能,所以很多时候我们需要将函数执行后的结果返 ...

  6. Python基本语法_函数_参数的多类型传值

    前言 上一篇主要介绍了Python函数的参数类型,本篇继续学习Python函数多类型传值. 目录 前言 目录 软件环境 参数的多类型传值 向函数传递Tuple 向函数传递List 向函数传递Dicti ...

  7. python语法_内置函数

    a = filter(函数名,序列) 返回一个迭代器对象/.函数里必须加过滤条件 ret = ['a','b','c','d','e'] def ft(s): if s != 'a': return ...

  8. python语法基础-函数-内置函数和匿名函数-长期维护

    ##################     内置函数        #######################  """ 一共是 68个内置函数: 反射相关的内置函 ...

  9. Python练习_函数进阶_day10

    1. 1.作业 1,写函数,接收n个数字,求这些参数数字的和.(动态传参) 2,读代码,回答:代码中,打印出来的值a,b,c分别是什么?为什么? a=10 b=20 def test5(a,b): p ...

随机推荐

  1. 【原创】大数据基础之Impala(3)部分调优

    1)将coordinator和executor角色分离 By default, each host in the cluster that runs the impalad daemon can ac ...

  2. String,下表和切片,分割

    字符串介绍 1.字符串在内存中的存储 2.字符串的加法 3.字符串的格式化 1. 下标索引 所谓“下标”,就是编号,就好比超市中的存储柜的编号,通过这个编号就能找到相应的存储空间 字符串中" ...

  3. Docker----搭建自己的gitlab(填坑之旅)

    在成功完成docker的基础实验之后,尝试着使用docker搭建自己的gitlab,用来存放自己的代码.本文主要介绍使用docker搭建gitlab过程中遇到的问题,我的服务器系统是:Ubuntu S ...

  4. 基于tkinter的GUI编程

    tkinter:tkinter是绑定了Python的TKGUI工具集,就是Python包装的Tcl代码,通过内嵌在Python解释器内部的Tcl解释器实现的,它是Python标准库的一部分,所以使用它 ...

  5. docker删除已经停止的容器

    前言:docker容器已经停止运行的容器,怎么清理 1.如图:   docker   ps  -a  :显示所有运行过的docker容器 status    :  docker容器的状态 docker ...

  6. Redis实战 - 4.Key

    Redis 键(key) Redis 键命令用于管理 redis 的键. DEL key 该命令用于在 key 存在时删除 key. 127.0.0.1:6379> set w3ckey red ...

  7. 自己动手造拖拉机轮子系列 -(react-loadable)

    最新消息:react官方已支持懒加载https://reactjs.org/docs/code-splitting.html#reactlazy 文章webpack分片chunk加载原理中深入探究了异 ...

  8. 利用easygui模块编写的华氏温度与摄氏温度转换的小程序

    -*- coding:utf-8 -*- #Author:'Lmc' #DATE: 2019/4/23/0023 下午 4:23:08 #FileName:tem_compare_gui.PY imp ...

  9. jsonp实现跨域资源共享原理

  10. JDK解压版制作

    今天上  甲骨文 的官网,想下载一个 解压版的 jdk 1.8 结果发现: 没有解压版,只有exe版本.于是就搜索制作方法. 具体就是,双击exe版本,在最后关头要安装的时候, 重点来了! 跟他皮一下 ...