一、函数
函数是组织好的,可以重复利用,用来实现一定功能的代码段。
1、函数的组成部分:
(1)函数代码块以 def 关键字开始,后接函数名称和括号(),然后是冒号 :
(2)任何传入的参数和自变量必须放在()中
(3)函数第一行语句可以写注释表明函数的功能
(4)代码段,描述了函数实现的功能,需要缩进
(5)return[表达式]结束函数,选择性的返回一个值给调用方。不带表达式的return或者没有写return相当于返回None
函数结构:
def function_name(parameters):
'''函数说明'''
代码块
return 表达式
2、函数调用
定义一个函数只给了函数名称,指定了函数的参数和代码块结构。函数定义完成,就可以调用函数。
举例:
def my_function(str):
print(str)
return
my_function('name') #调用函数
以上代码的输出结果是 name
3、参数
函数调用时可使用的参数类型有
(1)必备参数
必备参数必须以正确的顺序传入参数。调用时的参数数量必须和声明是的数量一致。
举例:
def my_func(str):
print(str)
my_func('name') #正确调用,返回结果
my_func() #调用时没有从输入参数,会报错
注:当有多个参数的时候,需要根据事情情况按顺序输入参数
(2)关键字参数
函数调用时使用时,使用关键字参数确定传入的参数值。(在有多个参数时使用方便)
举例:定义一个函数,用来打印姓名和年龄
def person_info(name,age):
print(name,age)
person_info('jone',39) #按要求顺序输入参数
person_info(39,'jone')#将名字和年龄弄反了
person_info(age=39,name='jone')#用关键字参数确定传入参数值,及时顺序跟函数声明中的不一样,仍能正确传入
(3)缺省参数
调用函数时,缺省参数的值如果没有传入,被认为是默认值。
举例:
def person_info(name,age=79):
print(name,age)
person_info(name='Lili',age=50) #返回结果为 Lili 50
person_info(name='Lili') #返回结果为 Lili 79 如果传参的时候没有写关键字参数,则会按顺序传入参数,没有的就会认为是默认值
(4)不定长参数
有时候声明函数的时候并不确定参数的数量,这时候就需要不定长参数。这种情况下参数声明的时候不会命名。
加*的参数名会存放所有未命名的变量参数
基本语法如下:
def function_name(parameters,*parameters):
'''函数说明'''
代码块
return 表达式
举例
def person_info(name,*age):
print(name,age)
person_info('jone',3923,445) # 输出结果是 jone (3923,445)
4、
return语句
return语句表示退出函数,选择性地向调用方返回一个表达式。不带参数的return或者没有写return表示返回None,
5、变量作用域
(1)全局变量
定义在函数外的是全局变量,拥有全局作用域,可以在整个程序内访问。
(2)局部变量
局部变量只被声明在函数内部访问。
函数内部也可以定义全局变量,使用global关键字
二、模块
Python模块(Module),是一个Python文件,以.py结尾,包含了Python对象定义和Python语句
1、import 语句
import用来一如模块,语法如下:
import 模块名称 #注:此时使用模块中的函数时,格式为:模块名.函数名
举例:
import math
my_sqrt = math.sqrt(5)
print(my_sqrt)
2、from ... import... 语句
从模块到中导入指定的部分。语法如下:
from 模块名 import 函数名
举例:
from math import sqrt
my_sqrt = sqrt(9)
print(my_sqrt)
3、
from ... import *
导入模块中的所有项目(一般不推荐使用,模块中有很多函数名、变量名等,可能会与自己定义的一些函数名重名,不能清楚区分)