背景
在学习函数之前,一直遵循:面向过程编程,即:根据业务逻辑从上到下实现功能,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,也就是将之前实现的代码块复制到现需功能处,如下:while True:
if cpu利用率 > 90%:
#发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接
if 硬盘使用空间 > 90%:
#发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接
if 内存占用 > 80%:
#发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接
函数小练习#!/usr/bin/env python
#_*_ coding:utf-8 _*_
#def 关键字 定义函数名mail
def mail():
n = 123
n += 1
print(n)
mail()
f = mail
f()
发送邮件实例#!/usr/bin/env python
#_*_ coding:utf-8 _*_
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
def mail():
ret = True
try:
msg = MIMEText('邮件内容', 'plain', 'utf-8')
msg['From'] = formataddr(["叶飞",'yefei@51rz.com'])
msg['To'] = formataddr(["走人",'384526074@qq.com'])
msg['Subject'] = "主题"
server = smtplib.SMTP("smtp.exmail.qq.com",25)
server.login("yefei@51rz.com", "邮箱密码")
server.sendmail('yefei@51rz.com', ['384526074@qq.com',], msg.as_string())
server.quit()
except Exception:
ret = False
#reture 返回值
return ret
ret = mail()
if ret:
print('发送成功')
else:
print('发送失败')
函数普通参数def mail(user):
ret = True
try:
msg = MIMEText('邮件内容', 'plain', 'utf-8')
msg['From'] = formataddr(["叶飞",'yefei@51rz.com'])
msg['To'] = formataddr(["走人",'384526074@qq.com'])
msg['Subject'] = "主题"
server = smtplib.SMTP("smtp.exmail.qq.com",25)
server.login("yefei@51rz.com", "邮箱密码")
server.sendmail('yefei@51rz.com', [user,], msg.as_string())
server.quit()
except Exception:
ret = False
return ret
ret = mail('384526074@qq.com')
if ret:
print('发送成功')
else:
print('发送失败')
默认函数 指定函数#无参数
# show():-- > show()
#一个参数
#def show(arg):
# print(arg)
#show('kkkkkkkk')
#两个参数
#def show(arg,xxx):
# print(arg,xxx)
#show(1111,2222)
#默认参数 必须放在最后
#def show(a1,a2=999):
# print(a1,a2)
#show(1111)
#show(1111,22222)
#指定参数
def show(a1,a2):
print(a1,a2)
show(a2=123,a1=9999)
函数的动态参数
def show(*arg):
print(arg,type(arg))
show(1,2,3,4)
#默认一个*号 是元祖
def show(**arg):
print(arg,type(arg))
show(n1 = 78,uu=123,bb=999)
#两个*号 是字典
结合使用
def show(*args,**kwargs):
print(args,type(args))
print(kwargs,type(kwargs))
#添加一个列表元素 和一个字典
l = [11,22,33,44]
d = {'n1':88,'alex':'sb'}
show(*l,**d)
format用法s1 = "{name} is {acter}"
d = {'name':'alex','acter':'sb'}
#result = s1.format(name='alex',acter='sb')
result = s1.format(**d)
print(result)