专栏首页python3Python学习-函数

Python学习-函数

DRY:don`t repeat yourself

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数

使用函数:

1,可以降低代码量

2,降低维护成本

3,使程序更容易阅读

函数式编程最重要的是增强代码的重用性和可读性

你可以定义一个由自己想要功能的函数,以下是简单的规则:

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

语法:

def functionname( parameters ):
   "函数_文档字符串"
   function_suite   return [expression]

默认情况下,参数值和参数名称是按函数声明中定义的的顺序匹配起来的。

1、返回值

函数是一个功能块,该功能到底执行成功与否,需要通过返回值来告知调用者。

return语句[表达式]退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None。

2、参数

函数的有三中不同的参数:

  • 普通参数
  • 默认参数
  • 动态参数

关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。

使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。

调用函数时,缺省参数的值如果没有传入,则被认为是默认值

你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述2种参数不同,声明时不会命名,加了星号(*)的变量名会存放所有未命名的变量参数。选择不多传参数也可。

python 使用 lambda 来创建匿名函数。

  • lambda只是一个表达式,函数体比def简单很多。
  • lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
  • lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
  • 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。

lambda函数的语法只包含一个语句,如下:

lambda [arg1 [,arg2,.....argn]]:expression

变量作用域

一个程序的所有的变量并不是在哪个位置都可以访问的。访问权限决定于这个变量是在哪里赋值的。

变量的作用域决定了在哪一部分程序你可以访问哪个特定的变量名称。两种最基本的变量作用域如下:

  • 全局变量
  • 局部变量

定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。

局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加入到作用域中。如下实例:

#!/usr/bin/python# -*- coding: UTF-8 -*-total = 0; # 这是一个全局变量# 可写函数说明def sum( arg1, arg2 ):
   #返回2个参数的和."
   total = arg1 + arg2; # total在这里是局部变量.
   print "函数内是局部变量 : ", total   return total;
 #调用sum函数sum( 10, 20 );print "函数外是全局变量 : ", total

以上实例输出结果:

函数内是局部变量 :  30函数外是全局变量 :  0

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python函数详解

        *args接收全部位置参数,聚合为元祖 **kwargs接收全部关键字参数,聚合为字典

    py3study
  • python高阶函数

    高阶函数定义: 1.函数接收的参数是一个函数名; 2.函数返回的是一个函数名; 只要满足上述条件中的任意一个条件的函数均属于高阶函数

    py3study
  • 偏函数

    偏函数的目的就是通过为函数指定参数的设定值,从而降低函数调用的难度 当函数的参数个数太多,每次调用都要显式的传入很多参数值,这样就太麻烦了 这时可使用偏函数创建...

    py3study
  • 函数的定义和调用

    梨涡浅笑
  • 函数声明与表达式的区别

    HTML5学堂:函数有不同的定义方法,一种是函数声明,另一种是函数表达式,那么这两种有何区别呢? 函数声明的基本语法 function functionName...

    HTML5学堂
  • JavaScript 编程精解 中文第三版 三、函数

    ApacheCN_飞龙
  • 【玩转腾讯云】万物皆可Serverless之关于云函数冷热启动那些事儿

    然后我们再来看一下腾讯云云函数文档里的简介 https://cloud.tencent.com/document/product/583/9199

    乂乂又又
  • C语言之函数

      结构化程序设计主张按功能来分析需求,主要原则自顶向下,逐步求精,模块化等。 主张按功能把软件系统逐步细分,每个功能都负责对数据进行一次处理,每个功能接收一些...

    互联网金融打杂
  • C语言常用的知识没多少之函数讲解

    C语言可以实现很多的功能,这些功能都是用函数实现的,如同高中学过的y=f(x)一样。给定一个x,便能求出对应的y值。在此从自定义函数的声明、使用(调用)和常用的...

    用户5935416
  • Oracle sql语句--单行函数、组函数、分组与过滤组信息

    函数分为系统内置函数自定义函数(后期学习的plsql 中定义);了解系统内置函数(方法),重点掌握 to_date 、 to_char (字符和日期的转...

    wolf

扫码关注云+社区

领取腾讯云代金券