为什么要有函数?
函数式编程定义一次,多出调用
函数在一定程度上可以理解为变量
函数的内存地址加上()就是调用
函数本身也可以当做参数去传参

不用函数:
组织结构不清晰
代码的重复性

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四:函数练习--小白博客的更多相关文章

  1. python之yagmail模块--小白博客

    yagmail 实现发邮件 yagmail 可以简单的来实现自动发邮件功能. 安装 pip install yagmail 简单例子 import yagmail #链接邮箱服务器 yag = yag ...

  2. Python爬虫简单实现CSDN博客文章标题列表

    Python爬虫简单实现CSDN博客文章标题列表 操作步骤: 分析接口,怎么获取数据? 模拟接口,尝试提取数据 封装接口函数,实现函数调用. 1.分析接口 打开Chrome浏览器,开启开发者工具(F1 ...

  3. 这几天有django和python做了一个多用户博客系统(可选择模板)

    这几天有django和python做了一个多用户博客系统(可选择模板) 没完成,先分享下 断断续续2周时间吧,用django做了一个多用户博客系统,现在还没有做完,做分享下,以后等完善了再慢慢说 做的 ...

  4. 第四篇Scrum冲刺博客

    第四篇Scrum冲刺博客 一.站立式会议 提供当天站立式会议照片一张 二.每个人的工作 成员 已完成工作 明天计划完成的工作 遇到的困难 林剑峰 用户界面跳转到用户信息页面的按钮,设计用户信息页面 测 ...

  5. python环境变量配置 - CSDN博客

    一.下载: 1.官网下载python3.0系列(https://www.python.org/) 2.下载后图标为: 二.安装: Window下: 1.安装路径: 默认安装路径:C:\python35 ...

  6. 第四篇Scrum冲刺博客--Interesting-Corps

    第四篇Scrum冲刺博客 站立式会议 1.会议照片 2.队友完成情况 团队成员 昨日完成 今日计划 鲍鱼铭 搜索页面跳转.设计及布局实现 音乐详情页面跳转.设计及布局实现设计 叶学涛 编写设置页面 编 ...

  7. python第四章:函数--小白博客

    Python函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可 ...

  8. python网络爬虫 新浪博客篇

    上次写了一个爬世纪佳缘的爬虫之后,今天再接再厉又写了一个新浪博客的爬虫.写完之后,我想了一会儿,要不要在博客园里面写个帖子记录一下,因为我觉得这份代码的含金量确实太低,有点炒冷饭的嫌疑,就是把上次的代 ...

  9. Python开发【项目】:博客后台

    概述 通过自己写的博客后台代码.思路,来与武sir的代码进行一个差异化的比较,记录之间的差距,改善以后写代码的思路 博客后台这个项目,对之前Django学习的各个知识点都有涉及到,非常重要 用户登录验 ...

随机推荐

  1. ${pageContext.request.contextPath}相关问题总结

    (1)采用绝对路径,但为了解决不同部署方式的差别,在所有非struts标签的路径前加${pageContext.request.contextPath},如原路径为:”/images/title.gi ...

  2. Windows Server 2016-Wbadmin命令行备份域控制器

    在上一章我们讲到Windows Server 2016-图形化备份域控制器的方法,本章我们聊聊如何通过命令行Wbadmin对域控制器进行备份.在Windows Server Active Direct ...

  3. (转)Eclipse中快速输入System.out.println()的快捷键

    https://blog.csdn.net/ShiMengRan107/article/details/73614417 善用 Eclipse 组合键,可以提高输入效率. Step1: Eclipse ...

  4. Python 中的Duck Typing

    在学习Python的时候发现了鸭 子类型这个术语,听起来好像很有意思一样,所以把它记下来. 鸭子类型(Duck Typing)的名字来源于"鸭子测试": "当看到一只鸟走 ...

  5. if else; while; break;continue ----流程控制系列

    第一种语法: if 条件: # @引号是为了把条件和结果分开. 结果1 # 一个Tab或者4个空格 @告诉程序满足上面的if条件才会执行结果1结果2 #如果条件为真(True),执行结果1,然后执行结 ...

  6. python while and for

    一.while循环 1.格式: while 条件: while循环体 else: 循环正常跳出执行的语句 2.实例: index= : : break #直接跳出while ,不会执行else els ...

  7. python 代码检测工具

    对于我这种习惯了 Java 这种编译型语言,在使用 Python 这种动态语言的时候,发现错误经常只能在执行的时候发现,总感觉有点不放心. 而且有一些错误由于隐藏的比较深,只有特定逻辑才会触发,往往导 ...

  8. jar包内的文件导出的注意点

    1.截取文件名 windows 和linux 通用 String fp[] = filePath.replaceAll("\\\\","/").split(&q ...

  9. 使用readAsDataURL方法预览图片

    使用FileReader接口的readAsDataURL方法实现图片的预览. 在FileReader出现之前,前端的图片预览是这样实现的:把本地图片上传到服务器,服务器把图片地址返回,并把它替换到图片 ...

  10. UVA11093-Just Finish it up(思维)

    Problem UVA11093-Just Finish it up Accept: 1225  Submit: 5637Time Limit: 3000 mSec Problem Descripti ...