您的位置:首页 > 编程语言 > Python开发

python基础之函数基础

2019-01-06 20:30 176 查看

函数介绍
* 什么是函数请看如下代码:

print (" ooOoo “)2.print (” o8888888o “)3.print (” 88 . 88 “)4.print (” (| -_- |) “)5.print (” O\ = /O “)6.print (” /

---'\\____ ")7.print (" . ' \\| |//
. “)8.print (” / \||| : |||// \ “)9.print (” / ||||| -:- |||||- \ “)10.print (” | | \\\ - /// | | “)11.print (” | \| ‘’\—/’’ | | “)12.print (” \ .-\
-
/-. / “)13.print (”
. .' /--.--\\
. . __ “)14.print (” ."" '<
.___\\_<|>_/___.' >'"". ")15.print (" | | :
- \
.;
\ _ /
;.
/ -
: | | ")16.print (" \\ \\
-. \ \ /
/ .-
/ / ")17.print (" ======
-.
-.___\\_____/___.-
.-’====== “)18.print (” `=—=’ “)19.print (” “)20.print (” … “)21.print (” 佛祖镇楼 BUG辟易 “)22.print (” 佛曰: “)23.print (” 写字楼里写字间,写字间里程序员; “)24.print (” 程序人员写程序,又拿程序换酒钱。 “)25.print (” 酒醒只在网上坐,酒醉还来网下眠; “)26.print (” 酒醉酒醒日复日,网上网下年复年。 “)27.print (” 但愿老死电脑间,不愿鞠躬老板前; “)28.print (” 奔驰宝马贵者趣,公交自行程序员。 “)29.print (” 别人笑我忒疯癫,我笑自己命太贱; “)30.print (” 不见满街漂亮妹,哪个归得程序员?")如果一个程序在不同的地方需要输出“佛祖镇楼”,程序应该怎样设计?if 条件1:输出‘佛祖镇楼’…(省略)…if 条件2:输出‘佛祖镇楼’…(省略)…10. 如果需要输出多次,是否意味着要编写这块代码多次呢?如果在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数01. 函数的快速体验1.1 快速体验
* 所谓函数,就是把 具有独立功能的代码块 组织为一个小模块,在需要的时候 调用
* 函数的使用包含两个步骤:

1. 定义函数 —— 封装 独立的功能
2. 调用函数 —— 享受 封装 的成果
* 函数的作用,在开发程序时,使用函数可以提高编写的效率以及代码的 重用

演练步骤
1. 新建 04_函数 项目
2. 复制之前完成的 乘法表 文件
3. 修改文件,增加函数定义 multiple_table():
4. 新建另外一个文件,使用 import 导入并且调用函数

  1. 函数基本使用2.1 函数的定义定义函数的格式如下:1.def 函数名():2.3. 函数封装的代码4. …… [ol]

    def 是英文 define 的缩写

  2. 函数名称 应该能够表达 函数封装代码 的功能,方便后续的调用

  3. 函数名称 的命名应该 符合 标识符的命名规则

      可以由 字母、下划线 和 数字 组成
    • 不能以数字开头
    • 不能与关键字重名
[/ol]

2.2 函数调用调用函数很简单的,通过 函数名() 即可完成对函数的调用2.3 第一个函数演练需求
1. 编写一个打招呼 say_hello 的函数,封装三行打招呼的代码

1. 在函数下方调用打招呼的代码

name = “小明”# 解释器知道这里定义了一个函数def say_hello():print(“hello 1”)print(“hello 2”)print(“hello 3”)print(name)# 只有在调用函数时,之前定义的函数才会被执行# 函数执行完成之后,会重新回到之前的程序中,继续执行后续的代码say_hello()print(name)思考
* 能否将 函数调用 放在 函数定义 的上方?

1.* 不能!2.* 因为在 使用函数名 调用函数之前,必须要保证

Python
已经知道函数的存在3.* 否则控制台会提示
NameError: name 'say_hello' is not defined
(名称错误:say_hello 这个名字没有被定义)2.4 函数的文档注释
* 在开发中,如果希望给函数添加注释,应该在 定义函数 的下方,使用 连续的三对引号
* 在 连续的三对引号 之间编写对函数的说明文字
* 在 函数调用 位置,使用快捷键 CTRL + Q 可以查看函数的说明信息

注意:因为 函数体相对比较独立,函数定义的上方,应该和其他代码(包括注释)保留 两个空行03. 函数的参数需求
1. 开发一个 sum_2_num 的函数
2. 函数能够实现 两个数字的求和 功能

演练代码如下:def sum_2_num():num1 = 10num2 = 20result = num1 + num2print("%d + %d = %d" % (num1, num2, result))sum_2_num()思考一下存在什么问题函数只能处理 固定数值 的相加如何解决?
* 如果能够把需要计算的数字,在调用函数时,传递到函数内部就好了!

3.1 函数参数的使用
* 在函数名的后面的小括号内部填写 参数
* 多个参数之间使用 , 分隔

def sum_2_num(num1, num2):result = num1 + num2print("%d + %d = %d" % (num1, num2, result))sum_2_num(50, 20)3.2 参数的作用
* 函数,把 具有独立功能的代码块 组织为一个小模块,在需要的时候 调用
* 函数的参数,增加函数的 通用性,针对 相同的数据处理逻辑,能够 适应更多的数据

1. 在函数 内部,把参数当做 变量 使用,进行需要的数据处理
2. 函数调用时,按照函数定义的参数顺序,把 希望在函数内部处理的数据,通过参数 传递

注:为了让一个函数更通用,即想让它计算哪两个数的和,就让它计算哪两个数的和,在定义函数的时候可以让函数接收数据,就解决了这个问题,这就是 函数的参数
* 函数参数的调用顺序

3.3 形参和实参
* 形参:定义 函数时,小括号中的参数,是用来接收参数用的,在函数内部 作为变量使用
* 实参:调用 函数时,小括号中的参数,是用来把数据传递到 函数内部 用的

  1. 函数的返回值
      在程序开发中,有时候,会希望 一个函数执行结束后,告诉调用者一个结果,以便调用者针对具体的结果做后续的处理
    • 返回值 是函数 完成工作后,最后 给调用者的 一个结果
    • 在函数中使用 return 关键字可以返回结果
    • 调用函数一方,可以 使用变量 来 接收 函数的返回结果

注意:return 表示返回,后续的代码都不会被执行1.def sum_2_num(num1, num2):""“对两个数字的求和”""return num1 + num2# 调用函数,并使用 result 变量接收计算结果result = sum_2_num(10, 20)print(“计算结果是 %d” % result)05. 函数的嵌套调用
* 一个函数里面 又调用 了 另外一个函数,这就是 函数嵌套调用
* 如果函数 test2 中,调用了另外一个函数 test1

* 那么执行到调用 test1 函数时,会先把函数 test1 中的任务都执行完
* 才会回到 test2 中调用函数 test1 的位置,继续执行后续的代码

def test1():print("" * 50)print(“test 1”)print("" * 50)def test2():print("-" * 50)print(“test 2”)test1()print("-" * 50)test2()函数嵌套的演练 —— 打印分隔线体会一下工作中 需求是多变 的需求 1
* 定义一个 print_line 函数能够打印 * 组成的 一条分隔线

1.def print_line(char):2.3. print("*" * 50)4.需求 2
* 定义一个函数能够打印 由任意字符组成 的分隔线

1.def print_line(char):2.3. print(char * 50)4.需求 3
* 定义一个函数能够打印 任意重复次数 的分隔线

1.def print_line(char, times):2.3. print(char * times)4.需求 4
* 定义一个函数能够打印 5 行 的分隔线,分隔线要求符合需求 3

提示:工作中针对需求的变化,应该冷静思考,不要轻易修改之前已经完成的,能够正常执行的函数!1.def print_line(char, times):2.3. print(char * times)4.5.6.def print_lines(char, times):7.8. row = 09.10. while row < 5:11. print_line(char, times)12.13. row += 114.作业:必做题
1. 要求:定义一个函数,能够输出自己的姓名和年龄,并且调用这个函数让它执行

* 使用def定义函数
* 编写完函数之后,通过 函数名() 进行调用
2. 要求:定义一个函数,完成前2个数完成加法运算,然后对第3个数,进行减法;然后调用这个函数

* 使用def定义函数,要注意有3个参数
* 调用的时候,这个函数定义时有几个参数,那么就需要传递几个参数
3. 编程实现 9*9乘法表函数版

1.提示:使用循环嵌套
1. 用函数实现求100-200里面所有的素数

1.提示:素数的特征是除了1和其本身能被整除,其它数都不能被整除的数
1. 请用函数实现一个判断用户输入的年份是否是闰年的程序

1.提示:1.能被400整除的年份2.能被4整除,但是不能被100整除的年份以上2种方法满足一种即为闰年 6、用函数参数实现输入两个数字,并求两个数字的和 7、list = [{“beijing”:{“mianji”:1290,“renkou”:123123},“shanghai”:{“mianji”:12331,“renkou”:123123}}]beijing mianji 1290beijing renkou 123123shanghai mianji 12331shanghai renkou 1231238、学生成绩管理系统9、用函数实现输入某年某月某日,判断这一天是这一年的第几天?闰年情况也考 输入:20160818 打印:是2016年的第285天

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: