python四:函数练习--小白博客
为什么要有函数?
函数式编程定义一次,多出调用
函数在一定程度上可以理解为变量
函数的内存地址加上()就是调用
函数本身也可以当做参数去传参
不用函数:
组织结构不清晰
代码的重复性
def test():#test就是函数名,里面的代码块就是值
print('你好')
print(test) #函数不加(),则只返回内存地址 def bar(x):#x叫形参
print(x)
bar('s')#s叫实参 def foo(x, y=):#y相当于默认值,如果传参数会把y覆盖,如果不传参数默认就是2
print(x + y)
foo(x=,y=) def bar(*args):
print(args)#args返回的是一个元组,args名字可以自定义,*必须有
print(*args) #返回输入值
bar(,,,,,,,,'x') def bar(**shenchenlin):
print(shenchenlin)#kwargs返回的是一个字典,kwargs名字可以自定义,**是必须有的
bar(name='申晨林', age='') # return 返回,把函数的执行结果返回,return下面的代码不会执行
def test(x, y):
return x + y
def bar(x,y):
return x + y
res = bar(test(,), )
#监控
# 如果c盘使用率超过10%,print(cpu使用率超过10%)
# 如果内存使用率超过80%,print(内存使用率超过80%)
# 如果cpu使用率超过70%,print(cpu使用率超过70%)
import psutil
import yagmail
info = {}
def disk():
disk_total = int(psutil.disk_usage('c:')[]///)
disk_used = int(psutil.disk_usage('c:')[]///)
disk_free = int(psutil.disk_usage('c:')[]///)
disk_percent = psutil.disk_usage('c:')[]
disk_info = {
'disk_total':disk_total,
'disk_used': disk_used,
'disk_free': disk_free,
'disk_percent': disk_percent
}
return disk_info
def mem():
mem_total = int(psutil.virtual_memory()[]//)
mem_free = int(psutil.virtual_memory()[]//)
mem_percent = psutil.virtual_memory()[]
mem_used = int(psutil.virtual_memory()[]//)
mem_info = {
'mem_total': mem_total,
'mem_free': mem_free,
'mem_percent': mem_percent,
'mem_used': mem_used
}
return mem_info def cpu():
cpu_percent = psutil.cpu_percent()
cpu_info = {
'cpu_percent': cpu_percent
}
return cpu_info def sendmail(subject,contents):
yag = yagmail.SMTP(user='18618250232@163.com', password='lizhaoqwe123123', host='smtp.163.com')
yag.send(to='18618250232@163.com', cc='18618250232@163.com', subject=subject, contents=contents)
yag.close() def main():
disk_info = disk()
mem_info = mem()
cpu_info = cpu()
info.update(disk_info)
info.update(mem_info)
info.update(cpu_info)
msg = '硬盘总大小:%sG\n硬盘使用大小:%sG\n硬盘剩余大小:%sG\n硬盘使用率:%s%%\n内存总大小:%sM\n内存剩余大小:%sM\n内存使用率:%s%%\n内存使用大小:%sM\ncpu使用率:%s%%' % (info['disk_total'],info['disk_used'],info['disk_free'],info['disk_percent'],info['mem_total'],info['mem_free'],info['mem_percent'],info['mem_used'],info['cpu_percent'])
if info['disk_percent'] > :
sendmail('邮件报警',msg) if __name__ == '__main__':
main()
if __name__=='main':命令的理解与练习
print('恋习Python')
def main():
print('恋习Python')
if __name__ == '__main__':
main()
print('跟着菜鸟分析,练习Python越练越恋')
其运行原理也就是:
由于每个python模块(python文件)都包含内置的变量__name__,
当运行模块被执行的时候,__name__等于文件名(包含了后缀.py)。
如果import到其他模块中,则__name__等于模块名称(不包含后缀.py)。
而“__main__”等于当前执行文件的名称(包含了后缀.py)。所以当模块
被直接执行时,__name__ == '__main__'结果为真;而当模块被import到
其他模块中时,__name__ == '__main__'结果为假,就是不调用对应的方法。
# 随机生成验证码
import random # 导入模块
def v_code(): # 验证码一般用循环 数字和字母相平的验证码
res="" # 验证码是字符串 首先有个初始值
for i in range(): #5表示验证码5个随机数
num = random.randint(,) # 取到的数字
alf = chr(random.randint(,) )#chr chr()函数是输入一个整数【,】返回其对应的ascii符号
s = str(random.choice([num, alf]))# 做字符的转换
#res += random.choice([num, alf]) # 让字母和数字随机拼接起来,choice在s1和s2里面随机选择一个。
res +=s # 这是上面步骤的简写
return res # 返回的是字符串平接的结果
print(v_code())# 调用函数
匿名函数:没有名字函数********
def test(x,y):
return x+y
res = test(,)
print(res) sum = lambda x,y: x+y
print(sum(,))
info = {
'li':,
'zhao':,
'wu': ,
'du':
} def func(k):
return info[k]
#通过value比较取KEY
res = max(info,key=func)
print(res)
max
print(max(info,key=lambda k: info[k]))
sorted排序
print(sorted(info,key=lambda k: info[k],reverse=True))
map映射
name = ['zhao', 'du', 'wu'] def test(name):
return '%s_NB' % name res = map(lambda n:'%s_NB' % n, name)
print(list(res))
filter过滤
name = ['zhao_NB', 'du_NB', 'wu']
res = filter(lambda k: k.endswith('NB'), name)
print(list(res))
python四:函数练习--小白博客的更多相关文章
- python之yagmail模块--小白博客
yagmail 实现发邮件 yagmail 可以简单的来实现自动发邮件功能. 安装 pip install yagmail 简单例子 import yagmail #链接邮箱服务器 yag = yag ...
- Python爬虫简单实现CSDN博客文章标题列表
Python爬虫简单实现CSDN博客文章标题列表 操作步骤: 分析接口,怎么获取数据? 模拟接口,尝试提取数据 封装接口函数,实现函数调用. 1.分析接口 打开Chrome浏览器,开启开发者工具(F1 ...
- 这几天有django和python做了一个多用户博客系统(可选择模板)
这几天有django和python做了一个多用户博客系统(可选择模板) 没完成,先分享下 断断续续2周时间吧,用django做了一个多用户博客系统,现在还没有做完,做分享下,以后等完善了再慢慢说 做的 ...
- 第四篇Scrum冲刺博客
第四篇Scrum冲刺博客 一.站立式会议 提供当天站立式会议照片一张 二.每个人的工作 成员 已完成工作 明天计划完成的工作 遇到的困难 林剑峰 用户界面跳转到用户信息页面的按钮,设计用户信息页面 测 ...
- python环境变量配置 - CSDN博客
一.下载: 1.官网下载python3.0系列(https://www.python.org/) 2.下载后图标为: 二.安装: Window下: 1.安装路径: 默认安装路径:C:\python35 ...
- 第四篇Scrum冲刺博客--Interesting-Corps
第四篇Scrum冲刺博客 站立式会议 1.会议照片 2.队友完成情况 团队成员 昨日完成 今日计划 鲍鱼铭 搜索页面跳转.设计及布局实现 音乐详情页面跳转.设计及布局实现设计 叶学涛 编写设置页面 编 ...
- python第四章:函数--小白博客
Python函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可 ...
- python网络爬虫 新浪博客篇
上次写了一个爬世纪佳缘的爬虫之后,今天再接再厉又写了一个新浪博客的爬虫.写完之后,我想了一会儿,要不要在博客园里面写个帖子记录一下,因为我觉得这份代码的含金量确实太低,有点炒冷饭的嫌疑,就是把上次的代 ...
- Python开发【项目】:博客后台
概述 通过自己写的博客后台代码.思路,来与武sir的代码进行一个差异化的比较,记录之间的差距,改善以后写代码的思路 博客后台这个项目,对之前Django学习的各个知识点都有涉及到,非常重要 用户登录验 ...
随机推荐
- SQL SERVER 查询表的行数
SELECT OBJECT_NAME(ii.id) TableName ,rows FROM sysindexes ii INNER JOIN sysobjects oo ON ( oo.id = i ...
- ELK-elkstack-使用消息队列
日志通过logstash收集到redis,之后从logstash从redis读取数据存入到ES 1. logstash使用redis测试 通过标准输入到redis中 logstash配置与启动 [yu ...
- elixir mix 简介
概述 mix 是 elixir 工程的构建工具,利用 mix,可以快速方便的创建 elixir 工程,写单元测试,管理 elixir 包的依赖管理等等. 我觉得刚开始学习 elixir 的时候,先简单 ...
- March 05th, 2018 Week 10th Monday
Fortune favors the bold. 勇者天佑. It has been increasingly apparent that courage is the main quality we ...
- 更高的压缩比,更好的性能–使用ORC文件格式优化Hive
http://lxw1234.com/archives/2016/04/630.htm 关键字:orc.index.hive Hive从0.11版本开始提供了ORC的文件格式,ORC文件不仅仅是一种列 ...
- linux历史命令查找快捷方式
一.回到上次操作的目录# cd -进入上次访问目录 二.历史命令搜索操作快捷键:[Ctrl + r], [Ctrl + p], [Ctrl + n] 在终端中按捉 [Ctrl] 键的同时 [r] ...
- ES5-ES6-ES7_数值的扩展
二进制与八进制数值表示法: 二进制用0b, 八进制用0o console.log(0b1010) console.log(0o56) Number.isFinite(i) 判断是否是有限大的数 con ...
- UVA12265-Selling Land(单调栈)
Problem UVA12265-Selling Land Accept: 137 Submit: 782Time Limit: 3000 mSec Problem Description Inpu ...
- Google Colab 基本操作
## 上传 from google.colab import files uploaded = files.upload() for fn in uploaded.keys(): print('Use ...
- 钉钉自定义机器人 发送文本 换行 \n无效果
今天用php做钉钉自定义机器人 发送文本 换行 \n无效果,原来是我一直用单引号作为定义字符串,换成双引号就ok了.