这一篇来介绍一下函数里面的一些东西

  • 函数的参数
  1. 必须参数:必须参数必须以正确的顺序传入函数.调用时的数据必须和声明时的一样
  2. 如果根据参数名来传入参数值,则无须遵守定义形参的顺序,这种方式被称为关键字(keyword)参数
  3. 调用函数时,缺省参数的值如果没有哦传入,则被认为是默认值.
  4. Python 允许在形参前面添加一个星号(*),这样就意味着该参数可接收多个参数值,多个参数值被当成元组传入
#函数参数
def name(name,age,sex):
print('姓名: %s 年龄: %d 性别: %s' %(name,age,sex)) #必须参数
name('李白',100,'公')
#关键字参数
name(name='大废物',age=88,sex="哈麻皮") #默认参数
def pro(school,family,cos = '高一(1)班'):
print(school,family,cos) pro('华中师范大学附属中学','湖北襄阳','高三(5)班') #不定长参数
def le(name,*age):
print(name,age) le('fi',18,'shab1',999)

运行结果为:

姓名: 李白  年龄: 100  性别: 公
姓名: 大废物 年龄: 88 性别: 哈麻皮
华中师范大学附属中学 湖北襄阳 高三(5)班
fi (18, 'shab1', 999)
  • 函数的作用域

  函数的作用域分为四种情况:

  L:local 局部作用域,即函数中定义的变量; E:enclosing 嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部作用域,但不是全局的

  G:global 全局变量就是模块级别定义的变量; B:builtin 系统固定模块里面的变量,比如int,bytearray等

  • 递归函数

  我们知道,在一个函数内部可以调用其他函数,如果一个函数在内部调用自己本身,那这个函数就是递归函数

  例如:

#使用函数递归实现阶乘
def func(number):
if number == 1:
return 1
return number*func(number - 1) print(func(5)) #斐波那契数列的实现
def fibo_new(n): if n <= 1:
return n
return (fibo_new(n-1) + fibo_new(n-2))
print(fibo_new(3))

运行结果

120
2
  • python 中lambda(匿名函数)表达式及用法
def add(x,y):
return x+y
print(add(3,7)) print('*******************') #使用匿名函数
c = lambda x,y:x+y
print(c(4,8))

运行结果:

10
*******************
12

lambda表达式的语法结构如下;

  lambda 参数:返回值

  从lambda的语法格式我们可以看出它的几个要点:

    1.lambda表达式必须使用lambda关键字定义

    2.在lambda关键字之后,冒号左边是参数列表,可以没有参数,也可以有多个参数,如果有多个参数,则需要使用逗号隔开,

      冒号右边是该lambda表达式的返回值\

lambda表达式使用起来更加方便,也可以是代码更加简洁,希望大家熟练掌握

Python入门基础(7)的更多相关文章

  1. Python 入门基础6 --字符编码、文件操作1

    今日内容: 1.字符编码 2.字符与字节 3.文件操作 一.字符编码 了解: cpu:将数据渲染给用户 内存:临时存放数据,断电消失 硬盘:永久存放数据,断电后不消失 1.1 什么是编码? 人类能够识 ...

  2. Python入门基础学习 三

    Python入门基础学习 三 数据类型 Python区分整型和浮点型依靠的是小数点,有小数点就是浮点型. e记法:e就是10的意思,是一种科学的计数法,15000=1.5e4 布尔类型是一种特殊的整形 ...

  3. Python入门基础学习 二

    Python入门基础学习 二 猜数字小游戏进阶版 修改建议: 猜错的时候程序可以给出提示,告诉用户猜测的数字偏大还是偏小: 没运行一次程序只能猜测一次,应该提供多次机会给用户猜测: 每次运行程序,答案 ...

  4. Python入门基础学习 一

    Python入门基础学习 一 Python下载及安装 下载地址:https://www.python.org/,选择最新的版本下载 稍等一会,安装完成. 简单语句 从idle启动Python:IDLE ...

  5. python入门基础

    Python 入门 变量 什么是变量?变量就是变化的量,核心是"变"和"量"两个字,变就是变化,量就是衡量状态. 为什么需要变量?程序执行的本质就是一系列状态的 ...

  6. Python入门 ---基础知识

    Python入门不知道这些你还是承早放弃吧!真的 Python 简介 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python 的设计具有很强的可读性,相比其他语言 ...

  7. Python入门基础教程(儿童版) [分享一本入门级教程]

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1. 推荐书名 No Starch--Python for ...

  8. Python 入门基础学习

     Python入门学习  我们使用python3.0版本 首选来入门  带你进入Hello World >>> print ("Hello World")Hell ...

  9. python入门基础—安装

    说明:0基础,那就先练习python语言基础知识,等基础知识牢固了,再对各开发平台分别进行介绍.这里只介绍两个简单而又容易搭建开发平台Anaconda和pycharm Anaconda是一个开源的Py ...

  10. Python入门基础教程-准备工作

    作为一名Python的忠实爱好者,在Python的学习过程中趟过了很多坑.不论是在基础语法.爬虫.可视化的学习,亦或是在数据挖掘的项目开展中,整个过程有痛苦也有收获,有捶胸顿足也有仰天长笑.所以在以后 ...

随机推荐

  1. C++和QML混合的QT程序调试方法

    以前调试只是QML或者只是C++的QT程序很简单,断点打上,直接debug按钮一点,喝一口水,自然就停在断点了. 这次遇到C++和QML混合的程序,把CONFIG+=declarative_debug ...

  2. Python标准库(3.x): itertools库扫盲

    itertools functions accumulate() compress() groupby() starmap() chain() count() islice() takewhile() ...

  3. C# 中使用OPenCV(Emgu)心得

    原文:C# 中使用OPenCV(Emgu)心得 首先介绍一下自己的情况,2010年的3月份开始接触学习C#编程,之前C#和OpenCV都是零基础,由于全都是自学进度比较慢,中间也走了不少弯路.进过三个 ...

  4. Redaht7/Oracle Linux7 + ORA11g : ohasd fails to start(Doc ID 1959008.1)

    APPLIES TO: Oracle Database - Standard Edition - Version 11.2.0.4 to 12.1.0.1 [Release 11.2 to 12.1] ...

  5. 让您的应用兼容 Android Oreo

    不知不觉Android Oreo已经发布几个月时间了,你的应用开始使用最新平台了吗?在应用迁移过程中是否遇到了一些棘手问题?你的Android应用兼容Oreo如何呢? 我们应该都知道,每一次重大升级, ...

  6. 常用json解析库比较及选择 fastjson & gson

    一.常用json解析库比较及选择 1.简介 fastjson和gson是目前比较常用的json解析库,并且现在我们项目代码中,也在使用这两个解析库. fastjson 是由阿里开发的,号称是处理jso ...

  7. OpenDJ Roadmap

    Roadmap https://wikis.forgerock.org/confluence/display/OPENDJ/OpenDJ+Roadmap Forum https://forum.for ...

  8. 用代码关闭冰刃(IceSword)

    (*冰刃这个系统分析工具以前还没用过.这样高级的工具,用结束进程的方式就不试了.按手工关闭的流程实现.首先是通过遍历当前进程,确定冰刃进程的主窗体:然后发送WM_CLOSE关闭主窗体.当关闭对话框出现 ...

  9. 32个Python爬虫项目让你一次吃到撑

    整理了32个Python爬虫项目.整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心.所有链接指向GitHub,祝大家玩的愉快~O(∩_∩)O WechatSogou [1]- 微信公众 ...

  10. MySQL批量更新一个字段的值为随机数

    $arr = []; $str = ''; for ($i=0; $i < 2660; ++$i) { $str .= " WHEN ".$i." THEN &qu ...