python 函数1
一、背景
在学习函数之前,一直遵循:面向过程编程,即:根据业务逻辑从上到下实现功能,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,也就是将之前实现的代码块复制到现需功能处,如下:
while True: if cpu利用率 > 90%: #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接 if 硬盘使用空间 > 90%: #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接 if 内存占用 > 80%: #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接
腚眼一看上述代码,if条件语句下的内容可以被提取出来公用,如下:
def 发送邮件(内容) #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接 while True: if cpu利用率 > 90%: 发送邮件('CPU报警') if 硬盘使用空间 > 90%: 发送邮件('硬盘报警') if 内存占用 > 80%:
对于上述的两种实现方式,第二次必然比第一次的重用性和可读性要好,其实这就是函数式编程和面向过程编程的区别:
- 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可
- 面向对象:对函数进行分类和封装,让开发“更快更好更强...”
函数式编程最重要的是增强代码的重用性和可读性
二、定义和使用
def 函数名(参数): ... 函数体 ... 返回值
函数的定义主要有如下要点:
- def:表示函数的关键字
- 函数名:函数的名称,日后根据函数名调用函数
- 函数体:函数中进行一系列的逻辑计算,如:发送邮件、计算出 [11,22,38,888,2]中的最大数等...
- 参数:为函数体提供数据
- 返回值:当函数执行完毕后,可以给调用者返回数据。
1、返回值
函数是一个功能块,该功能到底执行成功与否,需要通过返回值来告知调用者。
以上要点中,比较重要有参数和返回值:
def 发送短信(): 发送短信的代码... if 发送成功: return True else: return False while True: # 每次执行发送短信函数,都会将返回值自动赋值给result # 之后,可以根据result来写日志,或重发等操作 result = 发送短信() if result == False: 记录日志,短信发送失败...
2、参数
为什么要有参数?
def CPU报警邮件()
#发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接 def 硬盘报警邮件()
#发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接 def 内存报警邮件()
#发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接 while True: if cpu利用率 > 90%:
CPU报警邮件() if 硬盘使用空间 > 90%:
硬盘报警邮件() if 内存占用 > 80%:
内存报警邮件() 无参数实现
def CPU报警邮件()
#发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接 def 硬盘报警邮件()
#发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接 def 内存报警邮件()
#发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接 while True: if cpu利用率 > 90%:
CPU报警邮件() if 硬盘使用空间 > 90%:
硬盘报警邮件() if 内存占用 > 80%:
内存报警邮件() 无参数实现
函数的有三中不同的参数:
- 普通参数
- 默认参数
- 动态参数
# ######### 定义函数 ######### # name 叫做函数func的形式参数,简称:形参
def func(name):
print name # ######### 执行函数 #########
# 'wupeiqi' 叫做函数func的实际参数,简称:实参
func('wupeiqi')
def func(name, age = 18): print "%s:%s" %(name,age) # 指定参数
func('wupeiqi', 19)
# 使用默认参数
func('alex') 注:默认参数需要放在参数列表最后
def func(*args): print args # 执行方式一
func(11,33,4,4454,5) # 执行方式二
li = [11,2,2,3,3,4,54]
func(*li)
def func(**kwargs): print args # 执行方式一
func(name='wupeiqi',age=18) # 执行方式二
li = {'name':'wupeiqi', age:18, 'gender':'male'}
func(**li)
def func(*args, **kwargs): print args
print kwargs
扩展:发送邮件实例
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr msg = MIMEText('邮件内容', 'plain', 'utf-8')
msg['From'] = formataddr(["武沛齐",'wptawy@126.com'])
msg['To'] = formataddr(["走人",'424662508@qq.com'])
msg['Subject'] = "主题" server = smtplib.SMTP("smtp.126.com", 25)
server.login("wptawy@126.com", "邮箱密码")
server.sendmail('wptawy@126.com', ['424662508@qq.com',], msg.as_string())
server.quit()
邮件模块
内置函数
学习操作:
主要了解函数的类型:
1.普通参数
2.默认参数(如果要给某个参数设置默认参数,那么默认参数必须放到列表的后面)
3.指定参数
4.动态参数(在形式参数里面前面加个*),全部放置在元组中
5.动态参数2(双**)
6.万能参数
所有的函数都应该有返回值,函数体在调用的时候才能使用
aaarticlea/png;base64,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" alt="" />
def f1():
print(123)
return "" #函数中只要执行了return 函数内的代码就不在执行!!!(函数会终止)。
print(789)
r=f1()
print(r)
def f2():
print(123) #当没有设定return的时候如果对函数进行定义一个值得时候,会返回None r=f2()
print(r)
普通参数,默认参数
def f1(dd):#dd形式参数
print(dd)
return "Ok" s1={1,2,3,4,5,6,7,8,9,}
df_s=f1(s1) #s1实际参数
print(df_s) def send(xxoo,cont,xx="Ok"): #xx在这里起到了个默认参数的作用
print(xxoo,cont,xx)
return True
send("wang","delong")
send("wang","delong","dada") #dada这在里是传值参数,可以改变默认参数 def send(xxoo,cont):
print(xxoo,cont)
return True
send(cont="delong",xxoo="wang") #不按照循序的时候可以使用指定参数,
指定参数
def send(xxoo,cont):
print(xxoo,cont)
return True
send(cont="delong",xxoo="wang") #不按照循序的时候可以使用指定参数,
动态参数(在形式参数里面前面加个*),全部放置在元组中
def f1(*chnu): #超能力,不管传什么参数都会成为元组
print(chnu,type(chnu))
f1(155,22,"wang","hhhde")
li=[155,22,"wang","hhhde"] #会把列表作为一个元素传进了函数
f1(li,"laoda")
f1(*li) #如果函数里面有*那么就有特殊的功能了(形式参数),实际是做个循环,把列表的元素循环传值
动态参数2(双**)
def f1(**chnu): #会形成字典,**形式参数为字典,只能使用指定参数,全部放置在字典中
print(chnu,type(chnu)) f1(n1="laoda")
f1(n1="laoda",n2="")
dic={"k1":"v1","k2":"v2"}
f1(kk=dic)
f1(**dic)
完成参数
def f1(*top,**chnu): #万能参数,记住格式,有个星的必须在前面,
#(*args,**kwargs) #标准使用,这个是潜规则,建议后期使用按照标准写
print(top,type(top))
print(chnu,type(chnu))
f1(333,"sdgwegew",k1="",k2="")
#定义一个函数
#1.def 关键字,创建函数
#2.函数名
#3.()括号
#4.函数体
#5返回值
#def send def f1():
print(123)
return "" #函数中只要执行了return 函数内的代码就不在执行!!!(函数会终止)。
print(789)
r=f1()
print(r)
def f2():
print(123) #当没有设定return的时候如果对函数进行定义一个值得时候,会返回None r=f2()
print(r) def f1(dd):#dd形式参数
print(dd)
return "Ok" s1={1,2,3,4,5,6,7,8,9,}
df_s=f1(s1) #s1实际参数
print(df_s) def send(xxoo,cont,xx="Ok"): #xx在这里起到了个默认参数的作用
print(xxoo,cont,xx)
return True
send("wang","delong")
send("wang","delong","dada") #dada这在里是传值参数,可以改变默认参数 def send(xxoo,cont):
print(xxoo,cont)
return True
send(cont="delong",xxoo="wang") #不按照循序的时候可以使用指定参数, def f1(*chnu): #超能力,不管传什么参数都会成为元组
print(chnu,type(chnu))
f1(155,22,"wang","hhhde")
li=[155,22,"wang","hhhde"] #会把列表作为一个元素传进了函数
f1(li,"laoda")
f1(*li) #如果函数里面有*那么就有特殊的功能了(形式参数),实际是做个循环,把列表的元素循环传值 def f1(**chnu): #会形成字典,**形式参数为字典,只能使用指定参数,全部放置在字典中
print(chnu,type(chnu)) f1(n1="laoda")
f1(n1="laoda",n2="")
dic={"k1":"v1","k2":"v2"}
f1(kk=dic)
f1(**dic) def f1(*top,**chnu): #万能参数,记住格式,有个星的必须在前面,
#(*args,**kwargs) #标准使用,这个是潜规则,建议后期使用按照标准写
print(top,type(top))
print(chnu,type(chnu))
f1(333,"sdgwegew",k1="",k2="") 以上就是函数的函数的传值
#1.普通参数
#2.默认参数(如果要给莫个参数设置默认参数,那么默认参数必须放到列表的后面)
#3.指定参数
#4.动态参数(在形式参数里面前面加个*),全部放置在元组中
#5.动态参数2(双**)
#6.万能参数
str.format("ddd") #格式化输出
s="我的名字:{0},年龄:{1}".format("wangdelong",30) #格式化传值
print(s)
s="我的名字:{0},年龄:{1}".format(*["wangdelong",30]) #格式化传值,使用列表传值
print(s)
s="我的名字:{name},年龄:{age}".format(age=30,name="wangdelong") #字典传值
print(s)
dic={"name":"wangdelong","age":30}
s="我的名字:{name},年龄:{age}".format(**dic) #利用字典传值
print(s)
s="我的名字:{0},年龄:{1}".format("wangdelong",30) #格式化传值
print(s)
s="我的名字:{0},年龄:{1}".format(*["wangdelong",30]) #格式化传值,使用列表传值
print(s)
s="我的名字:{name},年龄:{age}".format(age=30,name="wangdelong") #字典传值
print(s)
dic={"name":"wangdelong","age":30}
s="我的名字:{name},年龄:{age}".format(**dic) #利用字典传值
print(s)
'''
'''
def f1(a1):
a1.append(999) li=["sang"]
f1(li)
print(li) #传递的是个引用
global
#全局变量,所有的作用域都能用(可以读)
#对全局变量,重新赋值,需要使用global
#如果定义的变量是个列表(特殊的变量列表字典等),是可以修改不可以重新赋值
#在这说一个潜规则,所有的全局变量要全部都是大写,有利于代码规范。
name="wangdleong"
def f1():
age=18
print(age,name)
def f2():
age = 20
print(age, name)
f1()
f2()
def f3():
age=18
global name #表示name是全局的变量,在函数内使用了global 重新给name定义为全局变量
name="liudahui"
print(age,name)
def f4():
age = 20
print(age, name)
f3()
f4()
三元运算,三目运算,是对if的简写
# 三元运算,三目运算,是对if的简写
if 1 == 1:
name = "Wang"
else:
name = "SB"
print(name)
name = "wang" if 1 == 1 else "SB" # 三元运算,就一句话完成了多个判断
print(name) def f1(a1):
return a1 + 100 f2 = lambda a1: a1 + 100 # lambda 是和上面的操作相同的,对于简单的函数来说,可以使用lambda 表达试来做 ret = f1(10)
print(ret)
ret = f2(100)
print(ret)
内置函数:
n = abs(-1)
print(n) # all() 接收有个可以被循环的对象,如果里面的内容都为真时候bool值就为真,如果有一个为假的时候bool值就为假
# any() 只要有真,就为真,于all() 相反 n = all(["wang","delong"])
print(n)
n1 = all([1,2,3,4,5,6,7,8,9,10])
print(n1)
n2 = all(["wang","delong",0])
print(n2)
n3 = all([1,2,3,4,5,6,7,8,9,10,0])
print(n3)
n4 = any([[],1])
print(n4)
n5 = any([0,0,0,0])
print(n5)
n6 = any([0,0,0,0,1])
print(n6)
# ascii() 自动执行对象的 _repr_方式
# bin() 转换二进制
# oct() 转换八进制
# hex() 转换十六进制
print(bin(5)) # 转换二进制
print(oct(9)) # 转换八进制
print(hex(17)) # 转换十六进制
# utf-8 一个汉字:三个字节
# gbk 一个汉字:两个字节
# bytes 指定一个字符串,转换一个字节类型
#utf-8
s = "德龙" # 一个字节八位,一个汉字三个字节
n = bytes(s,encoding="utf-8") # bytes(要转换的字符串,编码方式)
print(n)
n = bytes(s,encoding="gbk")
print(n)
# str 字节转换成一个字符串
n = str(bytes(s,encoding="utf-8"),encoding="utf-8")
print(n)
# open() 打开一个文件 f = open("userdb","r") # 只读
f = open("userdb","w") # 只写写之前会清空文件
f = open("userdb","a") # 追加
f = open("userdb","x") # 如果文件存在报错,不存在创建并写入
f = open("userdb","r+") # 可以读可以写
f = open("userdb","w+") # 可以读可以写
f = open("userdb","a+") # 可以读可以写
# 操作文件,通过源码查看功能 f.read() # 无参数,读全部;有参数,b,按照字节,无b按照字符
f.tell() # 获取当前指针位置,按照字节查找
f.seek(1) # 指针跳转到指定的位置
f.write() # 数据,有b,按照字节写入,无b,按照字符写入
f.flush() # 强刷写入文件
f.fileno # 文件描述符,后期会用到
f.readable # 判断文件是否可读,可读返回True,否则返回False
f.readline() # 按照行一行一行的读取
f.truncate() # 根据指针位置进行截断,按照的字节位置,后面的内容会全部清空
for 循环文件对象 f = open("ddd" ,"r")
# 关闭文件 f.close()
with open("userdb") as f:# 开启加关闭
pass
f = open("userdb","r") # 加b就转换成了字节类型
date = f.read() # 按照行的方式打开
print(date,type(date))
f.close() # TODO 你好
f = open("userdb","r",encoding="utf-8") # 依照莫个字符集开启文件
date = f.read()
print(date,type(date))
f.close() f = open("userdb","rb",encoding="utf-8") #按照字节打开
date = f.read()
print(date,type(date))
f.close() f = open("userdb","ab") #按照字节打开,如果没有带b就按照python自己去出去里
f.write(bytes("\n王大一|123456",encoding="utf-8")) #依照字节类型写入
f.close() f = open("userdb","r+",encoding="utf-8")
date = f.read(200) # 读取指针
print(date)
f.seek(9) # 定位指针,如果是汉字的时候,按照字符集进行计算字节位置
f.write("")
f.close() f = open("userdb","r+",encoding="utf-8") # 没有加b按照字符读取
date = f.read()
print(date)
print(f.tell()) # 定位前三个字符的字节位置(按照字节读取的),调整指针位置
f.seek(f.tell()) # 定位指针,永远按照字节的位置找位置,按照当前位置向后覆盖
f.write("AAA") # 按照上面的位置向后覆盖
f.close()
f = open("userdb","a",encoding="utf-8")
f.write("")
f.flush() # 强制刷新到文件,不执行完成可以强制写入
input("请输入:")
f.close()
f = open("userdb","a")
print(f.readable()) # 判断文件是否可读,可读返回True,否则返回False f = open("userdb", "r", encoding="utf-8")
data = f.readline() # 按照行一行一行的读取
print(data)
data = f.readline()
print(data)
f.close()
f = open("userdb", "r+", encoding="utf-8")
f.seek(9)
f.truncate() # 根据指针位置进行截断,按照的字节位置,后面的内容会全部清空。
f.close() f = open("userdb", "r+", encoding="utf-8") for line in f:
print(line)
f.close() with函数 with open("userdb","r+") as f:
pass
with open("userdb","r+") as f1,open("userdb","a+") as f2:
pass
with open("userdb","r+",encoding="utf-8") as f1,open("userdb1","w",encoding="utf-8") as f2:
for line in f1:
new_name = line.replace("王德龙","老王") # 更新一个文件的内容
f2.write(new_name)
python 函数1的更多相关文章
- python 函数之day3
一 函数的语法及特性 什么是函数? 定义:函数是一个功能通过一组语句的集合,由名字(函数名)将其封装起来的代码块,要想执行这个函数,只要调用其函数名即可. 特性: 减少重复代码 使程序变的可扩展 使程 ...
- Python函数作用域的查找顺序
函数作用域的LEGB顺序 1.什么是LEGB? L:local 函数内部作用域 E:enclosing 函数内部与内嵌函数之间 G:global 全局作用域 B:build-in 内置作用域 2.它们 ...
- Python函数讲解
Python函数
- Python函数信息
Python函数func的信息可以通过func.func_*和func.func_code来获取 一.先看看它们的应用吧: 1.获取原函数名称: 1 >>> def yes():pa ...
- Python函数参数默认值的陷阱和原理深究"
本文将介绍使用mutable对象作为Python函数参数默认值潜在的危害,以及其实现原理和设计目的 本博客已经迁移至: http://cenalulu.github.io/ 本篇博文已经迁移,阅读全文 ...
- Python开发【第四章】:Python函数剖析
一.Python函数剖析 1.函数的调用顺序 #!/usr/bin/env python # -*- coding:utf-8 -*- #-Author-Lian #函数错误的调用方式 def fun ...
- Python函数解析
对于Python的函数,我们需要记住的是: 1. 函数的默认返回值是None. 2. python是一个自上而下逐行解释并执行的语言.因此,函数的定义必须在函数被调用之前.同名的函数,后定义的会覆盖前 ...
- Python入门笔记(18):Python函数(1):基础部分
一.什么是函数.方法.过程 推荐阅读:http://www.cnblogs.com/snandy/archive/2011/08/29/2153871.html 一般程序设计语言包含两种基本的抽象:过 ...
- Python函数1
Python 函数命令的使用 想想我们之前数学中学到的函数,首先我们需要定义一个函数,例如f(x)=x, 当x输入任意数的时候,f(x)都能输出和x相等的数值. 那么在Python中是如何实现的呢? ...
- python函数传参是传值还是传引用?
首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题.基本的参数传递机制有两种:值传递和引用传 ...
随机推荐
- 收集磁盘分区信息(总量、可用、已用、百分比)导出到csv
#############################脚本功能及说明##################################################该脚本用来收集磁盘分区总大小 ...
- Android架构分析之Android消息处理机制(二)
作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz Android版本号:4.4.2 在上一篇文章中我们看了一个使用Handler处理Message消息的样例,本文我们 ...
- 运行时动态修改webconfig
网站运行时,如果直接手动修改webconfig.xml,会造成线程池重启,对于PV大的网站来说风险是很大的,并且如果有多台服务器,逐台修改也会造成数据不一致. .NET 2.0后可以通过代码修改web ...
- APP下载页面(支持微信扫一扫)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- C# - 集合类 - 集合接口
本篇将介绍关于集合的接口 这些接口定义了所有与集合有关的类的框架 IEnumerable接口 ns:System.Collections 此接口定义了对集合遍历的方法 一般表示元素序列或集合的类都实现 ...
- android应用版本更新功能---完整版
源码下载地址:csdn下载地址:http://download.csdn.net/download/csdn576038874/9526085 博客园下载地址:http://files.cnblogs ...
- ognl表达式和s标签
1.ognl表达式: Ognl上下文对象:(他是一个可以存储数据的空间结构,而且在这个结构中包含之前 jsp中的作用域对象) (放在 value stack控件),当前访问的Action这个上下文对象 ...
- pthread
pthread是UNIX操作系统中创建和控制线程的一系列API,通过了解这些API,可以更加清晰的理解线程究竟是什么. 调用pthread的API首先要包含<pthread.h>这一头文件 ...
- Java集合和PHP的对比
这里突然感觉到在java中的集合,和php的数组非常相似 .
- sqlServer 求当前周的第一天和最后一天,当前月的第一天和最后一天,前三个月的第一天和今天
---当前周的第一天 ),DATEADD(day,-(DATEPART(weekday,GETDATE())-),GETDATE()) , )as'周一', CONVERT(varchar(),DAT ...