一、函数的介绍
- 佛祖镇楼
print(" _ooOoo_ ")
print(" o8888888o ")
print(" 88 . 88 ")
print(" (| -_- |) ")
print(" O\\ = /O ")
print(" ____/`---'\\____ ")
print(" . ' \\| |// `. ")
print(" / \\||| : |||// \\ ")
print(" / _||||| -:- |||||- \\ ")
print(" | | \\\\\\ - /// | | ")
print(" | \\_| ''\\---/'' | | ")
print(" \\ .-\\__ `-` ___/-. / ")
print(" ___`. .' /--.--\\ `. . __ ")
print(" ."" '< `.___\\_<|>_/___.' >'"". ")
print(" | | : `- \\`.;`\\ _ /`;.`/ - ` : | | ")
print(" \\ \\ `-. \\_ __\\ /__ _/ .-` / / ")
print(" ======`-.____`-.___\\_____/___.-`____.-'====== ")
print(" `=---=' ")
print(" ")
print(" ............................................. ")
print(" 佛祖镇楼 BUG辟易 ")
print(" 佛曰: ")
print(" 写字楼里写字间,写字间里程序员; ")
print(" 程序人员写程序,又拿程序换酒钱。 ")
print(" 酒醒只在网上坐,酒醉还来网下眠; ")
print(" 酒醉酒醒日复日,网上网下年复年。 ")
print(" 但愿老死电脑间,不愿鞠躬老板前; ")
print(" 奔驰宝马贵者趣,公交自行程序员。 ")
print(" 别人笑我忒疯癫,我笑自己命太贱; ")
print(" 不见满街漂亮妹,哪个归得程序员?")
二、函数的使用
- 先定义后调用
-
好的函数定义一般要包括文档说明和注释
提高代码的可读性,便于工作的交接 - 函数参数可以没有,即是缺省函数
2.1 先定义后调用函数
序号 | 函数类型 |
---|---|
1 | 无参数无返回值 |
2 | 无参数有返回值 |
3 | 有参数无返回值 |
4 | 有参数有返回值 |
类型1
def my_func():
...
[pass]
对应的调用方法:
my_func()
类型2
def my_func():
...
return 返回值
对应的调用方法:
varname = my_func()
类型3
def my_func(形参1, 形参2,...):
...
[pass]
对应的调用方法:
my_func(实参1, 实参2,...)
类型4
def my_func(形参1, 形参2,...):
...
return 返回值
对应的调用方法:
varname = my_func(实参1, 实参2,...)
2.2 函数参数
涉及形参、实参和默认值
参数类型 | 描述 |
---|---|
缺省参数 | 1. 调用函数时有实参,则取实参,否则取默认值 2. 定义函数时形参使用了缺省参数,那么后面的形参也必须使用缺省参数 |
位置参数 | 形参与实参必须在位置上一一对应 |
关键字参数 | 在调用函数时使用了函数的形参名,等号前后没有空格 |
2.3 return作用
-
return 结束语句,提前结束函数
作为性能考虑
return
- 返回函数返回值,并结束函数
函数返回值 | 描述 |
---|---|
一个return | return 值 |
多个return |
return 值1, 值2,... 默认返回元组return (值1, 值2,...) 返回元组return [值1, 值2,...] 返回列表return {"key2":值1, "key1":值2,...} 返回字典 |
2.4 函数嵌套
函数的定义中存在调用了其他定义的函数
格式:
- 正确示例
def my_func1():
pass
def my_func2():
my_func1()
pass
- 错误示例
def my_func1():
my_func2()
pass
def my_func2():
pass
2.5 拆包
- 可以对含多个元素的对象(类型是列表、元组、字典)进行拆包
eg:
my_list = [1, 3.14, 'hello', True]
num, pi, my_str, my_bool = my_list
print(num, pi, my_str, my_bool)
结果:1 3.14 hello True
- 可以对含多个值的返回值(类型是列表、元组、字典)进行拆包
2.6 交换变量的值
eg:
a = 0
b = 1
tmp = a
a = b
b = tmp
print(a, b)
结果:1 0
2.7 函数的文档说明
help()
- 查看类的所有方法
格式:help(类名)
eg:
help(str)
- 查看类的某个方法
格式:help(类名.方法名)
只写方法名,没有小括号
eg:
help(str.join)
提示:
- 查看的自定义的函数
help()
返回的是函数中的注释
eg:结果:def add2num(a, b): """ 这个函数使用计算两个数的和 :param a: 加数1 :param b: 加数2 :return: 返回值是两个加数的和 """ return a+b help(add2num)
2.8 局部变量与全局变量
函数使用变量时,优先使用局部变量,然后才是全局变量
函数变量 | 描述 | 作用域 |
---|---|---|
局部变量 | 指定义在函数内部的变量 1. 不同函数内部的局部变量可以重名 |
仅限于函数的内部,函数外部不可以调用 |
全局变量 | 指定义在函数外部的变量 1. 全局变量不可以重名 |
整个模块内 |
eg:
- 函数内部使用
global
标识全局变量,此时全局变量可以修改
num = 10
def print_info():
global num
print(num)
print_info()
更新中......
网友评论