铁乐学python_day04-作业】的更多相关文章

1.写函数,返回一个扑克牌列表,里面有52项,每一项是一个元组 例如:[('红心',2),('草花',2), -('黑桃','A')] def poker(): suit = ['红心', '梅花', '黑桃', '方片'] count = [i for i in range(2, 11)] king = ['J', 'Q', 'K', 'A'] poker_list = count + king li = [] for key in suit: for value in poker_list:…
1.继续整理函数相关知识点,写博客. 2.写函数,接收n个数字,求这些参数数字的和.(动态传参) def sum_n(*args): sum = 0 for i in args: sum += i return sum # 验证: print(sum_n(5,6,8,9,45)) 73 3.读代码,回答:代码中,打印出来的值a,b,c分别是什么?为什么? a=10 b=20 def test5(a,b): print(a,b) c = test5(b,a) print(c) 答:a为20,b为1…
练习题 1.整理函数相关知识点,写博客 2.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素, 并将其作为新列表返回给调用者. def odd_index(l): lis = [] for i in range(len(l)): # 通过range设定索引范围比通过元素找索引要好,因为相同元素返回的索引值会有误 if i % 2 != 0: lis.append(l[i]) return lis # 验证odd_index函数的使用正常不: li = [ i for i in ran…
1. 文件a.txt内容:每一行内容分别为商品名字,价钱,个数. apple 10 3 tesla 100000 1 mac 3000 2 lenovo 30000 3 chicken 10 3 通过代码,将其构建成这种数据类型: [{'name':'apple','price':10,'amount':3}, {'name':'tesla','price':1000000,'amount':1}......] 并计算出总价钱. 答: li = [] with open('a.txt', enc…
目录 IO模型介绍 阻塞IO(blocking IO) 非阻塞IO(non-blocking IO) 多路复用IO(IO multiplexing) 异步IO(Asynchronous I/O) IO模型比较分析 selectors模块 铁乐学python_Day44_IO多路复用 IO模型介绍 blocking IO 阻塞IO nonblocking IO 非阻塞IO IO multiplexing IO多路复用 signal driven IO 信号驱动IO asynchronous IO…
铁乐学python_Day43_协程 引子 之前我们学习了线程.进程的概念,了解了在操作系统中进程是资源分配的最小单位,线程是CPU调度的最小单位. 按道理来说我们已经算是把cpu的利用率提高很多了. 但是我们知道无论是创建多进程还是创建多线程来解决问题, 都要消耗一定的时间来创建进程.创建线程.以及管理他们之间的切换. 随着我们对于效率的追求不断提高,基于单线程来实现并发又成为一个新的课题, 即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发. 这样就可以节省创建线进程所消耗的时间…
铁乐学python_Day42_线程池 concurrent.futures 异步调用模块 concurrent.futures模块提供了高度封装的异步调用接口 ThreadPoolExecutor:线程池,提供异步调用 ProcessPoolExecutor: 进程池,提供异步调用 基本方法 submit(fn, *args, **kwargs) 异步提交任务 map(func, *iterables, timeout=None, chunksize=1) 取代for循环submit的操作 s…
铁乐学python_Day42_线程-信号量事件条件 线程中的信号量 同进程的一样,Semaphore管理一个内置的计数器, 每当调用acquire()时内置计数器-1:调用release() 时内置计数器+1: 计数器不能小于0:当计数器为0时,acquire()将阻塞线程直到其他线程调用release(). 实例:(同时只有5个线程可以获得semaphore,即可以限制最大连接数为5): from threading import Thread,Semaphore import thread…
铁乐学python_Day42_锁和队列 例:多个线程抢占资源的情况 from threading import Thread import time def work(): global n temp = n time.sleep(0.1) n = temp - 1 if __name__ == '__main__': n = 100 l = [] for i in range(100): p = Thread(target=work) l.append(p) p.start() for p…
铁乐学python_Day39_多进程和multiprocess模块2 锁 -- multiprocess.Lock (进程同步) 之前我们千方百计实现了程序的异步,让多个任务可以同时在几个进程中并发处理, 但是它们之间的运行没有顺序,一旦开启也不受我们控制. 尽管并发编程能让我们更加充分的利用IO资源,但是也会带来新的问题. 当多个进程使用同一份数据资源的时候,就会引发数据安全或顺序混乱问题. 遇到数据.安全比速度重要的场景,我们就需要将进程变回受同步控制. 例: #!/usr/bin/env…