生成器、协程、正则 简单基础

生成器:一类特殊的迭代器

#生成器,一类特殊的迭代器(1.记录位置2.返回值3.位置+1)
#next —> 获取下一个值
#生成器创建的两种方式
#第一种 列表推导式
list2 = [0,2,4,6,8,10]
print(list2)
list3 = [x * 2 for x in range(10)]
print(list3)

#生成器,把列表推导式的中括号改成小括号就变成生成器了
list4 = (x * 2 for x in range(10))
print(list4)
value = next(list4) #通过next获取值
print(value)
value = next(list4)
print(value)
print(’---------------’)
#第二种 函数使用了yield
def test():
return 10
def test1():
yield
m = test()
print(m)
m2 = test1()
print(m2)

#创建一个实现斐波那契的生成器
def fibnacci(n):
#n是指定的列数
#定义变量
a = 1
b = 1
#保存位置
current_index = 0
print(’-------1--------’)
#循环生成
while current_index < n:
#返回a
data1 = a
#改变a,b的值
a,b = b, a+b
#位置+1
current_index += 1
print(’-------2-------’)
yield data1 #yield 可以充当返回值
#yield作用:
#1.起到return的作用,可以返回值
#2.保存a,b,,并且暂停程序的执行
print(’--------3---------’)
if name == ‘main’:
#获取生成器
fib = fibnacci(5)
#取值
# value = next(fib)
# print(value)
#for遍历
for value in fib:
print(value)

协程: 是一个特殊的生成器  微线程、纤程  协程就是你可以暂停执行的函数  协程的操作是程序员

意义:对于多线程应用,cpu通过切片的方式来切换线程间的执行,协程切换时只使用一个线程(单线程),在一个线程中规定某个代码执行顺序

协程的适用场景:当程序中存在大量不需要CPU的操作时,适用于协程。

greenlet:
是一个第三方的库

gevent 也是用来协程的 能够自动切换任务,自动识别耗时操作

猴子补丁作用:
1.在运行时替换方法、属性等
2.再不修改第三方代码的情况下增加原来不支持的功能
3.在运行时为内存中的对象增加patch而不是在磁盘的源代码中增加

进程线程协程对比:
			进程是系统进行资源分配调度的独立单位,线程是cpu调度分派的基本单位,协程是一种用户态的轻量级线程,协程的调度完全由用户控制

应用场景:
多进程:密集cpu任务,需要充分使用多核cpu资源的时候用多进程:缺陷:多个进程之间通信成本高,切换开销大
多线程:密集io任务, 缺陷:同一个时间切片只能运行一个线程,不能做到高并行,但是可以做到高并发
协程:当程序中存在大量不需要cpu的操作时
缺陷:单线程执行,处理密集cpu和本地磁盘io的时候,性能比较低

正则表达式:又称规则表达式
经常被用来检索和替换那些符合某个模式的文本
可以:
测试字符串的某个模式
实现按照某种归则替换文本
根据模式从字符串中提取一个子字符串(爬虫)
[ol-] 匹配中括号中的任意字符 ^ 取反
[a-z] 匹配小写字母a到z
\d 匹配数字
\D匹配非数字的所有字符
\s 匹配空格
\S 除了空格的所有
\w 字母数字和下划线
\W 与小写取反
. 所有字符(除了\n)

  • 出现0次或n次
    +匹配前一个字符出现1次或者无限次
    ?匹配前一个字符出现1次或者0次
    {m}匹配前一个字符出现m次
    {m,n}匹配前一个字符出现m-n次

re模块
re.match(pattern,string,flags=0)
pattern:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
城市应急指挥系统是智慧城市建设的重要组成部分,旨在提高城市对突发事件的预防和处置能力。系统背景源于自然灾害和事故灾难频发,如汶川地震和日本大地震等,这些事件造成了巨大的人员伤亡和财产损失。随着城市化进程的加快,应急信息化建设面临信息资源分散、管理标准不统一等问题,需要通过统筹管理和技术创新来解决。 系统的设计思路是通过先进的技术手段,如物联网、射频识别、卫星定位等,构建一个具有强大信息感知和通信能力的网络和平台。这将促进不同部门和层次之间的信息共享、交流和整合,提高城市资源的利用效率,满足城市对各种信息的获取和使用需求。在“十二五”期间,应急信息化工作将依托这些技术,实现动态监控、风险管理、预警以及统一指挥调度。 应急指挥系统的建设目标是实现快速有效的应对各种突发事件,保障人民生命财产安全,减少社会危害和经济损失。系统将包括预测预警、模拟演练、辅助决策、态势分析等功能,以及应急值守、预案管理、GIS应用等基本应用。此外,还包括支撑平台的建设,如接警中心、视频会议、统一通信等基础设施。 系统的实施将涉及到应急网络建设、应急指挥、视频监控、卫星通信等多个方面。通过高度集成的系统,建立统一的信息接收和处理平台,实现多渠道接入和融合指挥调度。此外,还包括应急指挥中心基础平台建设、固定和移动应急指挥通信系统建设,以及应急队伍建设,确保能够迅速响应并有效处置各类突发事件。 项目的意义在于,它不仅是提升灾害监测预报水平和预警能力的重要科技支撑,也是实现预防和减轻重大灾害和事故损失的关键。通过实施城市应急指挥系统,可以加强社会管理和公共服务,构建和谐社会,为打造平安城市提供坚实的基础
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值