当前位置: 首页 > news >正文

python进阶_Day6

思维导图:

作业:

作业一:

# (1)请使用多任务形式完成:一边编程、一边听音乐、一边跟同事聊天。要求如下:
# a.使用多进程完成;

# (1)请使用多任务形式完成:一边编程、一边听音乐、一边跟同事聊天。要求如下:
import multiprocessing
def code(num):for i in range(num):print(f'第{i+1}次,code')def music(num):for i in range(num):print(f'第{i+1}次,music')def chat(num):for i in range(num):print(f'第{i+1}次,chat')# a.使用多进程完成;
if __name__ == '__main__':p1 = multiprocessing.Process(target=code, args=(3, ))p2 = multiprocessing.Process(target=music, args=(3, ))p3 = multiprocessing.Process(target=chat, args=(3, ))p1.start()p2.start()p3.start()p1.join()p2.join()p3.join()print('执行完毕')

运行结果:

作业二:

# b.使用多线程完成;

import threading
def code(num):for i in range(num):print(f'第{i+1}次,code')def music(num):for i in range(num):print(f'第{i+1}次,music')def chat(num):for i in range(num):print(f'第{i+1}次,chat')#
# b.使用多线程完成;
if __name__ == '__main__':t1 = threading.Thread(target=code, args=(3, ))t2 = threading.Thread(target=music, args=(3, ))t3 = threading.Thread(target=chat, args=(3, ))t1.start()t2.start()t3.start()t1.join()t2.join()t3.join()print('执行完毕')

运行结果:

作业三:

编写一个线程死锁的案例:

原因:未释放锁

import threadingmutex = threading.Lock()
def code(num):mutex.acquire()for i in range(num):print(f'第{i+1}次,code')# mutex.release()
def music(num):mutex.acquire()for i in range(num):print(f'第{i+1}次,music')# mutex.release()
if __name__ == '__main__':t1 = threading.Thread(target=code, args=(5,))t2 = threading.Thread(target=music, args=(5,))t1.start()t2.start()t1.join()t2.join()print('执行完毕')

运行结果:

作业四:

(1)写一个文件操作的上下文管理器,并用with语句测试通过
# a.要求增加一个read_data函数,读文件操作,只读前10行;

class Myfile():def __init__(self, name,mode):self.name = nameself.mode = modeself.fp = Nonedef __enter__(self):self.fp = open(self.name, self.mode, encoding='utf-8')return selfdef read_data(self):content = []for i in range(10):txt = self.fp.readline()content.append(txt)return contentdef __exit__(self, exc_type, exc_val, exc_tb):self.fp.close()if __name__ == '__main__':with Myfile('jaychou_lyrics.txt','r') as file:content = file.read_data()for line in content:print(line,end='')

运行结果:

 

作业五:

编写一个数据迭代器,要求每次读8条数据

import math# 编写一个数据迭代器,要求每次读8条数据
def read_data(batch_size):with open('jaychou_lyrics.txt', 'r', encoding='utf-8') as file:file_data = file.readlines()batch_number = math.ceil(len(file_data) / batch_size)for i in range(batch_number):yield file_data[i * batch_size:(i + 1) * batch_size]if __name__ == '__main__':data = read_data(4)for i in data:print(i)

运行结果:

 

yield关键字的作用:

1 将yield后面的值返回

2 在yield这个地方卡着(阻塞)

http://www.dtcms.com/a/473935.html

相关文章:

  • 网站pv uv统计wordpress 破解主题下载地址
  • 全参数与PEFT深度剖析
  • 记忆翻牌游戏
  • 自己做的网站如何让别人访问织梦帝国wordpress
  • Linux -程序地址空间
  • (Spring)@PathVariable 与 @RequestParam 区别与应用
  • SpringAI从入门到精通 (2)
  • Linux 12mybash的实现
  • K8s YAML 文件详解:从语法到实战编写指南
  • 社区版Idea怎么创建Spring Boot项目?Selected Java version 17 is not supported. 问题解决
  • 益阳市 网站建设电子商务网站建设的主要风险
  • SpringBootRemotePowershellAdmin:开箱即用的 Windows远程运维开源工具
  • 插槽vue/react
  • 对vue生命周期的理解
  • 2017民非单位年检那个网站做黄山旅游攻略景点必去
  • [笔记 自用]CAN总线通信配置
  • HTML 教程
  • 用自己服务器做网站用备案怎样在亚马逊网上开店
  • PHP操作elasticsearch7.8
  • 学校网站建设需求分析哪个小说网站可以做封面
  • 网站制作类软件推荐莆田网站格在哪里做
  • TypeScript 面试题及详细答案 100题 (21-30)-- 接口(Interface)
  • 承德网站新手怎么做网络推广
  • 6. 从0到上线:.NET 8 + ML.NET LTR 智能类目匹配实战--渐进式学习闭环:从反馈到再训练
  • 2.c++面向对象(五)
  • python中的一些运算符
  • 【嵌入式面试题】boss收集的11道,持续更新中
  • 保证样式稿高度还原
  • 网站建设 源码怎么注册公司名
  • [xboard] 34 buildroot 的overlay机制