Python编程基础之函数和模块
一、函数和模块概述
(一)函数概述
函数可以看成是语句的集合,通过函数调用来执行其包含的语句。函数可以返回一个计算结果,根据每次函数调用的参数,可以返回不同的计算结果。python利用函数提高代码的重用率,减少了代码冗余。
执行dir(__builtin__)
可以查看python所有内置对象
['arithmeticerror', 'assertionerror', 'attributeerror', 'baseexception', 'blockingioerror', 'brokenpipeerror', 'buffererror', 'byteswarning', 'childprocesserror', 'connectionabortederror', 'connectionerror', 'connectionrefusederror', 'connectionreseterror', 'deprecationwarning', 'eoferror', 'ellipsis', 'environmenterror', 'exception', 'false', 'fileexistserror', 'filenotfounderror', 'floatingpointerror', 'futurewarning', 'generatorexit', 'ioerror', 'importerror', 'importwarning', 'indentationerror', 'indexerror', 'interruptederror', 'isadirectoryerror', 'keyerror', 'keyboardinterrupt', 'lookuperror', 'memoryerror', 'modulenotfounderror', 'nameerror', 'none', 'notadirectoryerror', 'notimplemented', 'notimplementederror', 'oserror', 'overflowerror', 'pendingdeprecationwarning', 'permissionerror', 'processlookuperror', 'recursionerror', 'referenceerror', 'resourcewarning', 'runtimeerror', 'runtimewarning', 'stopasynciteration', 'stopiteration', 'syntaxerror', 'syntaxwarning', 'systemerror', 'systemexit', 'taberror', 'timeouterror', 'true', 'typeerror', 'unboundlocalerror', 'unicodedecodeerror', 'unicodeencodeerror', 'unicodeerror', 'unicodetranslateerror', 'unicodewarning', 'userwarning', 'valueerror', 'warning', 'windowserror', 'zerodivisionerror', '__ipython__', '__build_class__', '__debug__', '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__', 'abs', 'all', 'any', 'ascii', 'bin', 'bool', 'breakpoint', 'bytearray', 'bytes', 'callable', 'cell_count', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'debugcell', 'debugfile', 'delattr', 'dict', 'dir', 'display', 'divmod', 'enumerate', 'eval', 'exec', 'filter', 'float', 'format', 'frozenset', 'get_ipython', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'range', 'repr', 'reversed', 'round', 'runcell', 'runfile', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip']
演示python内置函数
(二)模块概述
模块是程序代码和数据的封装。模块中定义的变量、函数或类等可导入到其他文件中使用。python正是通过模块提供各种功能,例如,在前面用到的sys
、os
、math
、random
等都是模块。
1、sys模块
查看sys模块包含的对象(属性和方法)
使用sys模块的path
2、os模块
导入os模块
获取当前工作目录
3、math模块
4、random模块
二、函数
- 在编写程序时,往往会遇到在多处使用的类似代码。这时,可将重复代码提取出来,定义为函数。从而简化编程工作量,也使代码结构简化。
- 函数有三要素:函数名(
function name
)、参数列表(parameter list
)、返回值(return value
) - 参数有两种类型:位置参数(
positional parameter)、
键参数(key parameter
)
(一)定义函数
1、语法格式
def: define
def 函数名(参数表): 函数体(语句组) return 返回值
如果我们定义一个函数,没有写return语句,系统会自动给它添加一个return none
2、函数类型
- 无参函数
- 单参函数
- 多参函数
3、案例演示
定义无参函数
定义单参函数(调用时可以用位置参数,也可以用键参数)
定义多参函数
说明:定义函数时的参数叫做形式参数(formal paramter),简称形参(虚参);调用函数时的参数叫做实际参数(actual parameter),简称实参。调用函数,就是将实参传递给形参,进行处理之后,得到返回值。
定义有返回值的函数
(二)调用函数
1、简要说明
- 函数通过函数名加上一组圆括号进行调用,参数放在圆括号内,多个参数之间用逗号分隔。
- 在python中,所有的语句都是实时执行的,不像c/c++存在编译过程。def也是一条可执行语句,定义一个函数。所以函数的调用必须在函数定义之后。
- 在python中,函数名也是一个变量,它引用return语句返回的值,没有返回值时,函数值为none。
2、案例演示
编写并调用阶乘函数 - factorial(n)
运行程序,查看结果
(三)函数参数
在定义函数时,参数表中的各个参数称为形式参数,简称形参。调用函数时,参数表中提供的参数称为实际参数,简称实参。在python中,变量保存的是对象的引用,类似c/c++中的指针。实参传递给形参就是将对象的引用赋值给形参。
1、参数的多态性
多态是面向对象的一个特点,指多一个行为针对不同对象可能会得到不同的结果。python中的变量无类型属性,变量可引用各种不同类型的对象。同一个函数,传递的实际参数类型不同时,可获得不同的结果,体现了多态性。
2、参数赋值传递
通常,函数调用时按参数的先后顺序,将实参传递给形参。例如:调用add(1, 2.5)时,1传递给a,2.5传递给b。python允许以形参赋值的方式,指定将实参传递给形参。
三、利用函数实现模块化
1、创建多级菜单系统
编写程序 - 多级菜单系统.py
# -*- coding: utf-8 -*- """ 功能:多级菜单系统 作者:华卫 日期:2021年1月4日 """ def add_record(): print('添加记录功能尚待开发') def query_record(): print('查询记录功能尚待开发') def modify_record(): print('修改记录功能尚待开发') def delete_record(): print('删除记录功能尚待开发') def login(): while true: print('主菜单') print('=============') print('1. 增加记录') print('2. 查询记录') print('3. 修改记录') print('4. 删除记录') print('5. 返回上级菜单') print('==============') mc2 = int(input('输入菜单号:')) if mc2 == 1: add_record() elif mc2 == 2: query_record() elif mc2 == 3: modify_record() elif mc2 == 4: delete_record() else: break while true: print('============') print('1. 登录') print('2. 退出') print('============') mc1 = int(input('输入菜单号:')) if mc1 == 1: login() elif mc1 == 2: print('谢谢使用!') break
2、启动程序,查看效果
总结
篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注的更多内容!
上一篇: Loading加载页面