目录

1.定义函数:

1.1向函数传递信息

1.2实参和形参

2.传递实参:

2.1位置实参

2.1关键字实参

2.2默认值:

2.3等效的函数调用

2.4避免实参错误

3.返回值

3.1返回简单值

3.2让实参变为可选的

3.3返回字典

4.传递列表

4.1禁止函数修改列表

5.传递任意数量的实参:

5.1结合使用位置实参和任意数量实参

6.将函数存储在模块中:

6.1导入整个模块import

6.2导入特定的函数

6.3使用as给函数指定别名

6.4使用as给模块指定别名

6.5导入模块中的所有函数,使用 *


1.定义函数:

使用关键字def 来定义一个函数

def introduction():print("Hello world!")
greet_user()

1.1向函数传递信息

def introduction(username):print("Hello world!")
introduction('Xixi')

1.2实参和形参

以1.1为例子,在函数introduction() 的定义中:

变量username 是一个形参 --- 函数完成其工作所需的一项信息。

在代码introduction('Xixi')中,值'Xixi' 是一个实参,实参是调用函数时传递给函数的信息。

2.传递实参:

2.1位置实参

def person(username,old):print("I am" + username + ".")print("I am" + old + "years old.")
person('Xixi','3')

输出的结果为:

I am Xixi.

I am 2 years old.

位置实参的顺序很重要!如果需要多次调用这个函数,只需再次调用person()即可。

2.1关键字实参

关键字实参的顺序无要求,因为Python知道各个值该存储到哪个形参中。下面两个函数调用是等效的:

def person(username,old):
person(username='aa', old='two')
person(old='one',username='aa')

注意:使用关键字实参时,务必准确地指定函数定义中的形参名。

2.2默认值:

在调用函数中给形参提供了实参时,Python将使用指定的实参值;否则,将使用形参的默认值。因此,给形参指定默认值后,可在函数调用中省略相应的实参。使用默认值可简化函数调用,还可清楚地指出函数的典型用法。

#将形参old 的默认值设置为'3'
def person(username,old='3'):

注意 :使用默认值时,在形参列表中必须先列出没有默认值的形参,再列出有默认值的实参。这让Python依然能够正确地解读位置实参。

2.3等效的函数调用

def pet(petname, anmal_type = 'cat'):print("hhhhh")
#以下几种函数调用均是等效的
pet('xxx')
pet(petname = 'xxx')
pet('aaa','dog')
pet(petname = 'aaa', anmal_type = 'dog')
pet(anmal_type = 'dog', petname = 'aaa')

2.4避免实参错误

如果出现实参不匹配,就会报错。出现traceback

3.返回值

3.1返回简单值

在函数中,可使用return 语句将值返回到调用函数的代码行。函数并非总是直接显示输出,相反,它可以处理一些数据,并返回一个或一组值。函数返回的值被称为返回值 。

def get_name(first_name, last_name):
"""返回整洁的姓名"""full_name = first_name + ' ' + last_namereturn full_name.title()
singer = get_name('jimi', 'hendrix')
print(singer)

3.2让实参变为可选的

def get_name(first_name, last_name, middle_name=''):
if middle_name:full_name = first_name + ' ' + middle_name + ' ' + last_name
else:full_name = first_name + ' ' + last_namereturn full_name.title()
singer = get_name('kiki', 'hix')
print(singer)
musician = get_name('jon', 'lua', 'joe')
print(singer)

3.3返回字典

def build_pet(name, age):
"""返回一个字典,其中包含有关一只宠物的信息"""pet = {'first': name, 'last': age}pet personcat = build_person('kiki', '12')
print(cat)

4.传递列表

def build_pet(name):for name in names:greeting = "Hello, " + name.title() + "!"print(greeting)
petnames = ['cat', 'dog', 'tiger']
build_pet(petnames)  

4.1禁止函数修改列表

build_pet(list_name[:])

5.传递任意数量的实参:

可以在第一行的形参前面加个*,例如:def build_pet(*age):

5.1结合使用位置实参和任意数量实参

如果要让函数接受不同类型的实参,必须在函数定义中将任意数量实参的形参放在最后。Python先匹配位置实参和关键字实参,再将余下的实参都收集到最后一个形参中。

def build_pet(name ,*age):

6.将函数存储在模块中:

6.1导入整个模块import

创建一个a.py文件,在创建一个b.py文件,就可以在第二个文件里导入第一个文件

6.2导入特定的函数

from xxx import xxx

通过用逗号分隔函数名,可根据需要从模块中导入任意数量的函数:

from xxx import function1,function2,function3

6.3使用as给函数指定别名

from B import A as mp

6.4使用as给模块指定别名

import A as mp

6.5导入模块中的所有函数,使用 *

from A import *

本文学习内容参照《Python编程:从入门到实践》

Python基础知识- 定义函数相关推荐

  1. python基础知识之函数的定义及用法

    目录 前言: 一.函数的定义和调用 1.函数的作用 2.函数名的命名规范 3.函数的返回值:return 4.调用函数 二.函数的参数 1.函数形参和实参 2.参数传递的两种形式: 3.函数定义的三种 ...

  2. Python基础知识_Day12_函数中高级

    Day12 今日内容 函数中高级(闭包/高阶函数) 内置函数 内置模块(.py文件) 内容回顾 函数基础概念 函数的基本结构 def func(arg):return arg: v1 = func(1 ...

  3. Python基础知识(四)--函数

    def functionName(arguments):    #函数名(参数列表_可选) suite                       #函数体 def get_int(msg): whi ...

  4. Python基础知识之函数篇

  5. python程序如何执行死刑_「Python基础知识」Python生成器函数

    原标题:「Python基础知识」Python生成器函数 对于程序而言,内存也是很重要的,因为程序中很多数据都是保存在内存中的,如果内存中存储的数据过多,那么系统就会崩溃,这是人们不希望发生的. 可以采 ...

  6. python基础知识资料-Python基础知识汇总

    原标题:Python基础知识汇总 1.Anaconda的安装 百度Anaconda的官网,下载左边的Python3.X版本 然后是设置路径,最后给出Jupyter notebook.具体参考: 猴子: ...

  7. python基本语法规则-python基础知识——基本语法

    在python基础知识这个系列中,准备罗列出我学习python的一些基础知识,包括:基本语法 控制语句 内置数据结构 模块和函数 字符串 文件处理 面向对象 异常处理 以前写机器学习算法喜欢使用Mat ...

  8. Python基础day05【函数(局部变量、全局变量、多函数执行流程、函数返回值、函数参数)、拆包、引用、可变与不可变类型、函数注意事项】

    视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day05[函数(函数传参的两种形式.函数形参).拆包.引用.可变与不可变类型.引 ...

  9. python的基础知识可以应用到哪方面-Python基础知识

    python基础 python的诞生 2002年,python 2.x 2008年,python 3.x python的命名 马戏团的名称 python简介 简单.易学 持快速开发. 跨平台. 开源. ...

最新文章

  1. 批量关闭公众号推送_微信内测新功能:提醒用户可停止接收长期不阅读公众号推送...
  2. ACM入门练习与递推小结
  3. 程序员学习网站备份(小众+不定时更新ing...)建议收藏
  4. ArrayBlockingQueue原理分析-dequeue方法
  5. 美国0封伊朗已经6天了,伊石油出口真归零了吗?
  6. 英语一段落排序题技巧
  7. ArrayList和HashMap遍历比较
  8. html获取url后面的参数_Golang Gin 实战(四)| URL查询参数的获取和原理分析
  9. 如何获取NuGet以安装/更新packages.config中的所有软件包?
  10. robotframework 新建UI自动化测试用例实例一(2)
  11. html css纯写桌球运动轨迹,纯JS实现椭圆轨迹运动的代码
  12. weblogic jdk版本升级
  13. win2008服务器系统玩红警,win8系统不能玩红警2如何解决?win8系统不能玩红警2的解决方法...
  14. Dell R910报错E1234的处理方法
  15. 3D-LaneNet:端到端三维多车道检测ICCV2019
  16. 安卓-电子签名signature
  17. Uwsgi+Nginx+Django部署
  18. 深圳首个“别墅”旧改项目规划出炉:超45万㎡!华侨城操盘
  19. python怎么把一个文件夹内的文件复制到另外一个文件夹(进阶重命名复制)
  20. 数学分析-证明:单调有界数列必有极限

热门文章

  1. CentOS7使用yum安装Redis
  2. vivo iqoo z1体验笔记
  3. NFA和DFA的区别
  4. 交换机登录方式(串口方式)
  5. 高考状元:学霸的作息时间是怎么样的?为什么不会困?
  6. NRF SDK中DFU采坑集锦
  7. 全民抓娃娃风起 星球部落打造视频游戏社交新模式
  8. 面向微信的WebApp产品观
  9. JAVA的基础练习题
  10. 分享一款绝对实用的文件管理工具--ES文件浏览器。