一、函数的定义与优势:

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。

Python提供了许多内建函数,比如print(),但也可以自己创建函数,这被叫做用户自定义函数。

二、函数的定义

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

return 的作用 :返回结果,结束函数运行

代码如下:

def check_num():  #输入相应数字执行相应操作
num = input('请输入你的选择:1,添加商品;2,查看商品;3,删除商品: ')
if num == '1':
add_goods() #调用函数
elif num == '2':
check_goods()
elif num == '3':
del_goods()
else:
print('输入错误,请重新输入。')
return check_num() #递归调用 三、函数调用
定义一个函数只给了函数一个名称,指定了函数里包含的参数,和代码块结构。这个函数的基本结构完成以后,
你可以通过另一个函数调用执行,也可以直接从Python提示符执行。 四、函数的参数
形参:定义函数时传入的参数
实参:调用函数时传入的参数
必备参数:必备参数须以正确的顺序传入函数,调用时的数量必须和声明时的一样
命名参数:命名参数和函数调用关系紧密,调用方用参数的命名确定传入的参数值。你可以跳过不传的参数或者乱序传参,因为Python解释器能够用参数名匹配参数值
代码如下:
#!/usr/bin/python
#可写函数说明
def printinfo( name, age ):
   "打印任何传入的字符串"
   print "Name: ", name;
   print "Age ", age;
   return; #调用printinfo函数
printinfo( age=50, name="miki" );
#以上实例输出结果:

#Name:  miki
#Age  50

缺省参数:调用函数时,缺省参数的值如果没有传入,则被认为是默认值
代码如下:
#!/usr/bin/python #可写函数说明
def printinfo( name, age = 35 ):
   "打印任何传入的字符串"
   print "Name: ", name;
   print "Age ", age;
   return; #调用printinfo函数
printinfo( age=50, name="miki" );
printinfo( name="miki" );
#以上实例输出结果:

#Name:  miki
#Age  50
#Name:  miki
#Age  35

五、变量作用域
全局变量与局部变量

局部变量:定义在函数内部的变量

全局变量:定义在函数外部的变量

局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。

调用函数时,所有在函数内声明的变量名称都将被加入到作用域中

注:全局变量如果要在函数中修改的话,需要加global关键字声明(函数中),如果是list、字典和集合的话,则不需要加global关键字,直接就可以修改。

Head first Python 函数总结:
1,函数是命名的代码块
2,def关键字用来命名函数,函数代码的def关键字下(相对def关键字)缩进
3,Python的三重引号字符串可以用例为函数增加多行注释。如果采用这种方式,它们称为docstring
4,函数可以接收任意多个命名参数,也可以没有参数
5,return语句允许函数返回任意多个值(也可以不返回任何值)
6,函数注解可以用例描述函数参数的类型以及函数的返回类型
7,任何函数参数都可以在函数的def行赋一个默认值。如果为一个参数设置了默认值,调用函数时,为这个参数指定值就是可选的
def search4letters(phrase:str,letters=:str='aeiou'):
#为letter 参数赋了一个默认值,如果调用代码没有提供替代值,就会使用这个默认值
8,除了按位置赋参数,还可以使用关键字。使用关键字,任何顺序都是可以的(因为使用关键字可以去除任何二义性,位置不再重要)
search4letters('galaxy','xyz') #位置赋值,第一个字符串赋值给phrase,第二个字符串赋值给letters
search4letters(letters='xyz',phrase='galaxy')# 关键字赋值,按参数名来引用参数

Python 函数常用方法总结的更多相关文章

  1. python函数(2):函数进阶

    昨天说了函数的一些最基本的定义,今天我们继续研究函数.今天主要研究的是函数的命名空间.作用域.函数名的本质.闭包等等 预习: 1.写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的 ...

  2. 第六篇:Python函数进阶篇

    在了解完了 Python函数基础篇之后,本篇的存在其实是为了整合知识,由于该篇的知识是否杂乱,故大家可以通过点开点连接直接进入其详细介绍,该篇主要大致的介绍一下几个知识点:  一.Python的迭代器 ...

  3. python 函数之day3

    一 函数的语法及特性 什么是函数? 定义:函数是一个功能通过一组语句的集合,由名字(函数名)将其封装起来的代码块,要想执行这个函数,只要调用其函数名即可. 特性: 减少重复代码 使程序变的可扩展 使程 ...

  4. Python函数作用域的查找顺序

    函数作用域的LEGB顺序 1.什么是LEGB? L:local 函数内部作用域 E:enclosing 函数内部与内嵌函数之间 G:global 全局作用域 B:build-in 内置作用域 2.它们 ...

  5. Python函数讲解

    Python函数

  6. Python函数信息

    Python函数func的信息可以通过func.func_*和func.func_code来获取 一.先看看它们的应用吧: 1.获取原函数名称: 1 >>> def yes():pa ...

  7. Python函数参数默认值的陷阱和原理深究"

    本文将介绍使用mutable对象作为Python函数参数默认值潜在的危害,以及其实现原理和设计目的 本博客已经迁移至: http://cenalulu.github.io/ 本篇博文已经迁移,阅读全文 ...

  8. Python开发【第四章】:Python函数剖析

    一.Python函数剖析 1.函数的调用顺序 #!/usr/bin/env python # -*- coding:utf-8 -*- #-Author-Lian #函数错误的调用方式 def fun ...

  9. Python函数解析

    对于Python的函数,我们需要记住的是: 1. 函数的默认返回值是None. 2. python是一个自上而下逐行解释并执行的语言.因此,函数的定义必须在函数被调用之前.同名的函数,后定义的会覆盖前 ...

随机推荐

  1. Express优化-合并路由

    原app.js var express = require('express'); var app = express(); /*start*/ app.get('/',function(req,re ...

  2. es6数组去重复

    var arr=[1,1,2,3,5,7,7,7] arr=Array.from(new Set(arr))

  3. 动态加入改动删除html表格内容

    1.需求 须要实现收银台上加入改动删除商品信息时顾显能够实时看到其变化 2.解决 收银台和顾显通过tcp传输进行数据通信,顾显通过操作html中的表格进行数据加入改动和删除操作 3.代码 mytest ...

  4. javascript设置首页,加入收藏

    <a href="javascript:;" id="setHomePage" class="toolsbar" onclick=&q ...

  5. weblogic 异常 com.rsa.jsafe.JSAFE_PaddingException: Could not perform unpadding: invalid pad byte.次异常怎么解决

    问题 更改控制台密码后,服务重启失败,无法启动,报错如下: <-- 下午03时10分49秒 CST> <Info> <WebLogicServer> <BEA ...

  6. PHP基础知识(一)

    The Basics Comparison operators Comparison operators are an often overlooked aspect of PHP, which ca ...

  7. $(document).ready()方法和window.onload()方法

    $(document).ready()方法和window.onload()方法 $(document).ready()方法是JQuery中的方法,他在DOM完全就需时就可以被调用,不必等待这些元素关联 ...

  8. javascript闭包传参就这么简单

    var query = (function (a) { return a; })('fx'); alert(query);

  9. 怎样推断多个字段组成的keyword在另外一张表中是否存在

    怎样推断多个字段组成的keyword在另外一张表中是否存在 老帅(20141107) 1.首先推断一个keyword在另外一张表中是否存在非常easy! SELECT * FROM a WHERE a ...

  10. C#开发Unity游戏教程循环遍历做出推断及Unity游戏演示样例

    C#开发Unity游戏教程循环遍历做出推断及Unity游戏演示样例 Unity中循环遍历每一个数据,并做出推断 非常多时候.游戏在玩家做出推断以后.游戏程序会遍历玩家身上大量的所需数据,然后做出推断. ...