python之函数入门

  一. 什么是函数
  二. 函数定义, 函数名, 函数体以及函数的调用
  三. 函数的返回值
  四. 函数的参数

  五.函数名->第一类对象

  六.闭包

一,什么是函数

    函数: 对代码块和功能的封装和定义

二. 函数定义, 函数名, 函数体以及函数的调用

    我们使用def关键字来定义函数

    函数的定义语法:  def 函数名()

              函数体

如下

def fuc():
lst=[1,2,3,4,5,6,7,8,9]  #函数体
fuc()  #函数的调用

    这里的函数名的命名规则和使用和变量基本一样

    函数体: 就是函数被执行之后要执行的代码

    函数的调用: 使用函数名可以调用函数, 写法: 函数名(), 这个时候函数的函数体会被执行

三. 函数的返回值

    执行完函数之后. 我们可以使用return来返回结果.

如下:

def fuc():  
ls= []
lst= [1,2,3,4,5,6,7,8,9]
for i in range(len(lst)):
if int(i) % 2 ==0:
ls.append(lst[i])
return ls    #返回值 ls_1=fuc()
print(ls_1)

    函数中return的使用:
      1. 函数中遇到return, 此函数结束, 不再继续执⾏.      

      2. 关于返回值:          

        如果return什么都不写 或者 干脆不写return .那么返回的就是None          

        如果return后面写了一个值. 则调用者可以接收一个结果          

        如果return后面写了多个结果, 则调用者可以接收一个tuple, 调用者可以直接解构成多个变量

四. 函数的参数

    参数, 函数在调用的时候指定具体的一个变量的值. 就是参数

    参数语法:  def 函数名(参数列表):
            函数体

def func(形参)
a = 10
ret=func(实参)

  

关于参数:
1. 形参
  写在函数声明的位置的变量叫形参. 形式上的一个完整. 表示这个函数需要xxx
2. 实参
  在函数调用的时候给函数传递的值. 叫实参, 实际执行的时候给函数传递的信息. 表示给函数xxx
3. 传参
  给函数传递信息的时候将实际参数交给形式参数的过程被称为传参.

参数的分类:

  在实参的角度来看. 分为三种:
    1. 位置参数
    2. 关键字参数
    3. 混合参数, 位置参数必须在关键字参数前面

  在形参的⾓角度来看,
    1. 位置参数
    2. 默认值参数(大多数传进来的参数都是一样的, 一般用默认参数)

五.第一类对象-> 函数名 -> 变量名 

  • 函数名可以像变量一样进行赋值

  • 还可以作为列表的元素进行使用

  • 还可以作为返回值返回

  • 还可以作为参数进行传递

例子1.

def func1():
print("字符串") def func2():
print("列表") def func3():
print("字典") def func4():
print("元组") lst = [func1, func2, func3, func4] # 函数+() 就是调用.
print(lst) for el in lst: # el是列表中的每一项.
el() # 拿到函数. 执行函数

 例子2.

def wrapper():
def inner():
print("哈哈哈")
return inner # 函数名可以像返回值一样返回 ret = wrapper()#这里的ret就是inner
ret() # 在函数外面访问了函数内部的函数

  例子3代理proxy.

# 函数可以作为参数进行传递
def func1():
print("字符串") def func2():
print('列表') def func3():
print('字典') def func4():
print("元组") # proxy即代理. 装饰器的雏形
def proxy(a): # a就是变量. 形参
a()
proxy(func1)#把func1赋值给a
proxy(func3)#把func2赋值给a
proxy(func4)#把func3赋值给a

六.闭包

  闭包 -> 函数的嵌套
  内层函数对外层函数中的变量的使用  

  闭包的优点:

    1, 可以保护变量不被其他人侵害

    2, 保持一个变量常驻内存

def wrapper():
name = "周杰伦" # 局部变量常驻与内存
def inner():
print(name) # 在内层函数中使用了外层函数的局部变量
return inner # 返回函数名
ret = wrapper() # ret是一个内层函数
ret() # ret是inner, 执行的时机是不确定的, 必须保证里面的name必须存在

  如何通过代码查看一个闭包
    __closure__: 有东西就是闭包. 没东西就不是闭包

  

   

 

python之函数入门的更多相关文章

  1. Python基础——函数入门

    等待更新…………………… 后面再写

  2. Python编程从入门到实践笔记——函数

    Python编程从入门到实践笔记——函数 #coding=gbk #Python编程从入门到实践笔记——函数 #8.1定义函数 def 函数名(形参): # [缩进]注释+函数体 #1.向函数传递信息 ...

  3. python函数入门

    知识内容: 1.函数的作用 2.函数的定义与调用 3.函数的返回值 4.函数的参数 5.局部变量与全局变量 6.作用域 一.函数的作用 1.复用代码 将可能重复执行的代码封装成函数,并在需要执行的地方 ...

  4. python函数入门到高级

    函数的定义: def test(x): "The function definitions" x+=1 return x def:定义函数的关键字 test:函数名 ():内可定义 ...

  5. 《Python编程从入门到实践》_第八章_函数

    一个简单的函数 先看一个简单的函数 def say_hello(): '''打印hello''' print("Hello!") say_hello() #运行结果 Hello! ...

  6. Python——函数入门(二)

    一.函数的参数 我们在定义函数时,可以定义形式参数(简称形参),这些形参的值在函数调用的时候才会确定,形参的值由调用者负责传入. 1.关键字参数 在Python中,函数的参数名并不是没有意义的,在调用 ...

  7. Python开发的入门教程(六)-函数

    介绍 本文主要介绍Python中函数的基本知识和使用 Python之什么是函数 我们知道圆的面积计算公式为: S = πr² 当我们知道半径r的值时,就可以根据公式计算出面积.假设我们需要计算3个不同 ...

  8. 【Python从入门到精通】(十一)Python的函数的方方面面【收藏下来保证有用!!!】

    您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 本文主要介绍Python的函数,函数的定义,使用,可变参数等等都有详细介绍. 干货满满,建议收藏,需要用到时常看看. 小伙伴们如有问题及需要,欢迎 ...

  9. Python学习--01入门

    Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...

随机推荐

  1. Python基础(八) yaml在python中的使用

    yaml 通常用来存储数据,类似于json YAML 简介 YAML(Yet Another Markup Language),一种直观的能够被电脑识别的数据序列化格式,是一个可读性高并且容易被人类阅 ...

  2. nuxtJs中直接使用自带的@nuxtjs/axios

    最初我以为在nuxtjs中是需要重新npm install axios,但是其实nuxtjs自己集成了这个数据渲染方法 你只需在nuxt.config.js中配置一下就可以了 modules: [ / ...

  3. 关于SLG的产品市场判断

    SLG游戏是我自己主攻的未来产品方向,以下几个板块是我自己想着力挖掘的用户艺术: 1)经营能力(包括资源的规划,调配,成长性预期,以及投产比如何向用户选择向最大化) 2)统筹能力(包括自我资源的有效整 ...

  4. word之个人设置

    1.视图设置.五种视图中一般都是用“页面视图”.标尺和导航窗口都需要显示出来,方便操作,显示比例就用最真实的100%比例. 2.设置文件自动保存时间间隔和位置 3.word段落设置,不允许西文单词中间 ...

  5. [Android] websocket客户端开发

    为了能够在H5和APP都保持同一套长连接接口,因为采用websocket协议作为开发 使用的第三方库是:https://github.com/TakahikoKawasaki/nv-websocket ...

  6. Flask最强攻略 - 跟DragonFire学Flask - 第十六篇 Flask-Migrate

    终于到了Flask-Migrate,之前在学习Flask-SQLAlchemy的时候,有的同学就提过类似的问题,Flask支持 makemigration / migrate 吗? 答案在这里该诉你, ...

  7. LinkedHashMap和HashTable

    LinkedHashMap: 继承了HashMap: 其中,key不允许重复是Map接口就有的性质: HashTable: 同步的,意味着是单线程,意味着线程安全的,但是速度慢,和List接口集合的子 ...

  8. C++的重载操作符(operator)介绍(转)

    本文主要介绍C++中的重载操作符(operator)的相关知识. 1. 概述 1.1 what operator 是C++的一个关键字,它和运算符(如=)一起使用,表示一个运算符重载函数,在理解时可将 ...

  9. PLSQL远程连接数据库(亲测可试)

    一.准备工具: ORALCE数据库.PLSQL连接工具.确认网络正常 (我是在局域网中的,如果不是局域网,需要去ORACLE安装目录下找到sqlnet.ora 在里面找到 SQLNET.AUTHENT ...

  10. 用python完成带有进度条的圆周率计算

    代码如下:import math import time scale= s,m,=, print("执行开始".center(scale//2, "-")) s ...