函数,模块,模块包
1.函数
为了简化编程工作量和代码结构,可提取编程时重复使用的类似代码,将其定义为一个函数
#定义函数格式:
——————————————————
def 函数名(参数表):
函数体
return 返回值
#函数的参数
- 必需参数
例1:
def hello(a):
print(“hello”,a)
hello (“python”)
例2:
def hello(a):
print(“hello”,a)
hello()
<TypeError: hello() missing 1 required positional argument: ‘a’>
#required argument实参(实际参数,如:“python”) parameter形参(a)
2)默认参数
例1:
def add(a,b = 1): #注意必需参数写在前,默认参数写在后
print(a + b)
add(1)
<2> #只输入一个参数时,优先赋值给必需参数
例2:
def add(a,b = 1):
print(a + b)
add(1,2)
<3> #1,2按顺序赋值给a,b
3)关键字参数
def show_person(name=“姓名”,age=“年龄”):
print(name,age)
show_person(“张三”,“30”) #可利用关键字改变顺序show_person(age=“30”,name=”张三”)
4)不定长参数: *变量
def show_info(a):
print(a)
show_info(“张三”,180,“男”)
< TypeError: show_info() takes 1 positional argument but 3 were given>
#输入了多于一个的参数
#应用不定长参数:
def show_info(*a):
print(a)
show_info(“张三”,180,“男”)
< (‘张三’, 180, ‘男’)> #输出了一个元组
赋值传递:
def s(a,b = 12,*c):
print(a,"–",b,"–",c)
s(2,3)
< 2 – 3 – ()>
def s(a,b = 12,*c):
print(a,"–",b,"–",c)
s(2,3,4)
< 2 – 3 – (4,)>
def s(a,b = 12,*c):
print(a,"–",b,"–",c)
s(2,3,4,5,6,7)
< 2 – 3 – (4, 5, 6, 7)>
def s(*c,a,b = 12):
print(a,"–",b,"–",c)
s(2,3)
< TypeError: s() missing 1 required keyword-only argument: ‘a’>
#说明2,3优先赋值给c,而必需参数a没有赋值报错
2.模块、模块包(库)
(1)模块:包含了变量,函数或类的定义或其他python语句的程序文件(脚本)
导入基本格式:
import 模块
import 模块 as 新名称
from 模块 import 导入对象
from 模块 import 导入对象 as 新名称
例:
import math #导入内置math模块
a=math.pow(5,4)
print(a)
<625.0>
from math import pow
a=pow(5,4)
print(a)
<625.p>
查看当前模块搜索路径设置:
import sys
a=sys.path
print(a)
#__name__属性
在作为导入模块使用时,模块__name__属性值为模块文件的主名。当作为顶层模块直接执行时,__name__属性值为”main”
if name ==‘main’
def show():#模块独立运行时,执行
print(“test1.py独立运行”)
show()
import sys
print(sys.argv)
else:
def show():
print(“test1.py作为导入模块使用”)
print(“test1.py执行结束”)
(2)模块包:用于存放模块文件的目录(文件夹)称为包
导入包中模块:
from 包 import 模块 as 新名称
需要指明包的路径,用“.“分隔目录
每日积累:MD5加密
import hashlib
print(hashlib.md5(“加密内容”.encode(“utf-8”)).hexdigest())