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学习的各个知识点都有涉及到,非常重要 用户登录验 ...
随机推荐
- web前端(6)—— 标签的属性,分类,嵌套
属性 HTML标签可以设置属性,属性一般以键值对的方式写在开始标签中 1.HTML标签除一些特定属性外可以设置自定义属性,一个标签可以设置多个属性用空格分隔,多个属性不区分先后顺序. 2.属性值要用引 ...
- IIS 部署问题 404
在部署IIS环境中,偶尔会遇到 404 错误,就算以前遇到过,也因为时间久了导致大概知道是什么错了,具体解决方案觉忘了,所以留下一个记录,留给自己,也是给大家一点提醒.(注:错误信息也懒得截图了,希望 ...
- Win 10 启用Linux子系统---Kali 和Ubuntu子系统
注:转载请注明出处,谢谢!!! 一.Linux on Windows简介 Win10一周年版推出了用于Windows的Linux子系统这一功能.Linux子系统和Windows的结合真是有一种神互补. ...
- June 1. 2018 Week 22nd Friday
What makes life dreary is the want of motive. 没有了目的,生活便暗淡无光. We all have dreams about our future, we ...
- js FormData方法介绍
1. 概述 FormData类型其实是在XMLHttpRequest 2级定义的,它是为序列化表以及创建与表单格式相同的数据(当然是用于XHR传输)提供便利. 2. 构造函数 创建一个formData ...
- JavaScript字符集
引言 JavaScript程序使用Unicode字符集编写.Unicode是ASCII和Latin-1的超集,并支持地球上几乎所有在使用的语言.ECMAScript3要求JavaScript的实现必须 ...
- 《Java大学教程》—第19章 改进用户界面
用户与程序交互的媒介称为用户界面(user interface)或人机界面(human-computer interface). 19.2 Border接口8个实现Border接口的标准边框类: ...
- MVC四大筛选器—ExceptionFilter
该筛选器是在系统出现异常时触发,可以对抛出的异常进行处理.所有的ExceptionFilter筛选器都是实现自IExceptionFilter接口 public interface IExceptio ...
- Linux /var/log下的各种日志文件详解
1)/var/log/secure:记录登录系统存取数据的文件;例如:pop3,ssh,telnet,ftp等都会记录在此. 2)/var/log/wtmp:记录登录这的信息记录,被编码过,所以必须以 ...
- Fiddler抓包学习
今天看到一个抓包笔记, 因为是老早抓包的需求, 后期不用就忘了, 换电脑桌面软件图标都没了, 点开看了一下一脸懵逼... 这是啥... 以后有需要在看一遍吧! Fiddler抓包使用教程-扫盲篇 h ...