一、函数的定义与优势:

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

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. 万里长征第二步——django个人博客(第三步 —— 设置一些全局变量)

    可以将一些全局变量设置在settingg.py里 #网站的基本信息配置 SITE_NAME = 'John的个人博客' SITE_DESC = '专注学习Python开发,欢迎和大家交流' WEIBO ...

  2. 虚拟机选择配置:解决tomcat内存溢出

    用于解决java.tomcat内存溢出:-server -XX:PermSize=128M -XX:MaxPermSize=256m

  3. C/C++ 宏定义中#、##、#@的区别

    #表示:对应变量字符串化 ##表示:把宏参数名与宏定义代码序列中的标识符连接在一起,形成一个新的标识符 连接符#@:它将单字符标记符变换为单字符,即加单引号.例如: #define B(x) #@x ...

  4. Delphi 对象模型学习笔记(转)

    摘要     Borland Object Pascal 对象模型(现在已经正是命名为 Delphi 语言)与其他 OOP 语言一样,都提供了一些基础服务: 如对象创建服务.对象释放服务.对象识别服务 ...

  5. 【文件监控】之一:理解 ReadDirectoryChangesW part1

    理解 ReadDirectoryChangesW 原作者:Jim Beveridge 原文:http://qualapps.blogspot.com/2010/05/understanding-rea ...

  6. 在Ubuntu Server上源码安装OpenERP 8.0,并配置wsgi和nginx运行环境

    原文: How to install OpenERP 8.0 Alpha on a fresh Debian / Ubuntu server. OpenERP的安装,可以有多种方式,通过添加源,到 h ...

  7. nginx最大并发连接数的思考:worker_processes、worker_connections、worker_rlimit_nofile

    参考nginx官网:http://nginx.org/en/docs/ngx_core_module.html#worker_connections 从用户的角度,http 1.1协议下,由于浏览器默 ...

  8. Linux驱动虚拟地址和物理地址的映射

    一般情况下,Linux系统中,进程的4GB内存空间被划分成为两个部分------用户空间和内核空间,大小分别为0~3G,3~4G. 用户进程通常情况下,只能访问用户空间的虚拟地址,不能访问到内核空间. ...

  9. (转)Akka学习笔记

    Akka学习笔记系列文章: <Akka学习笔记:ACTORS介绍> <Akka学习笔记:Actor消息传递(1)> <Akka学习笔记:Actor消息传递(2)> ...

  10. SQL server数据库的链接以及增删改查的操作

    1.添加引用using System.Data;using System.Data.SqlData;2.建立于数据库的连接,建议将它做成一个方法,方便多次利用.string sqlconnection ...