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

day15 python(3)——python基础(完结!!)

【没有所谓的运气🍬,只有绝对的努力✊】

目录

1、函数

1.1 函数传参中的拆包

1.2 匿名函数的定义

1.3 匿名函数练习

1.4 匿名函数应用——列表中的字典排序

2、面向对象 OOP

2.1 面向对象介绍

2.2 类和对象

2.3 类的构成和设计

2.4 面向对象代码的步骤

2.5 面向对象——小案例

2.6 self

2.7 对象的属性操作

2.7.1  类外部添加

2.8 魔法方法

2.8.1  __init__  的使用

2.8.2 __str__ 的使用

2.8.3  __del__ 的使用

3、案例1——小明爱跑步

4、小结

5、作业

5.1  定义一个学生类

5.2 定义一个电脑

6、封装案例——存放家具

7、案例——登录页面(用于后续的自动化测试学习)

8、私有 和 公有

9、继承

9.1 继承定义

9.2 案例——继承

10、重写

11、多态

12、属性和方法

12.1 属性的划分

12.2 练习

12.3 方法的划分

12.3.1 案例——游戏类

12.4 补充概念——哈希、is

13、小结

14、文件

14.1 文件介绍

14.2 打开文件、读-写文件、关闭文件

14.3 文件——案例

14.3.1 写入文件

14.3.2 读文件

14.4 使用with open打开文件

14.5 按行读取文件内容

14.6 json文件的处理

14.6.1 json文件的语法

14.6.2 json 练习1

14.6.3 json 练习2

14.7 json写入

15、异常

15.1 异常的定义

15.2【捕获所有的异常】

15.3【捕获指定异常】

15.4 【捕获多个指定类型的异常】

15.5 【异常捕获的完整版本】

15.6  异常传递

16、小结

17、模块和包

17.1  模块的导入

17.2 模块的查找顺序

18、__name__的作用

18.1 练习

19、包


1、函数

1.1 函数传参中的拆包

想要将列表作为参数,传入函数中。   =====》 my_sum( *my_list ) 即可。

想要将字典作为参数,传入函数中。   =====》 my_sum( **my_list ) 即可。

1.2 匿名函数的定义

1.3 匿名函数练习

# 定义一个匿名函数,可以求两个数的乘积。
func1 = lambda a,b:a*b
print(func1(20,8))# 定义一个匿名函数,参数为字典,返回字典中键为age的值。
func2 = lambda a:a['age']
dic = {'name': '小明', 'age': 18}
print(func2(dic))

1.4 匿名函数应用——列表中的字典排序

my_list = [{'name': '小明', 'age': 18},{'name': '小李', 'age': 12},{'name': '小王', 'age': 28}]
my_list.sort(key=lambda x:x['age'])
print(my_list)
# [{'name': '小李', 'age': 12}, {'name': '小明', 'age': 18}, {'name': '小王', 'age': 28}]

字符串比大小:是根据ASCII比较的。 A<Z<a<z

ord( 字符 )   获取字符 的ASCII值。

chr( ASCII值 ) 获取对应的 字符。

2、面向对象 OOP

2.1 面向对象介绍

2.2 类和对象

2.3 类的构成和设计

          

2.4 面向对象代码的步骤

2.5 面向对象——小案例

   

'''需求:小猫爱吃鱼,小猫要喝水
'''
class Cat:def eat(self):print('爱吃鱼')def drink(self):print('爱喝水')cat = Cat()
cat.eat()

2.6 self

  

2.7 对象的属性操作

    

2.7.1  类外部添加

2.8 魔法方法

2.8.1  __init__  的使用

类名+() ==========>创建对象

'''需求:小猫爱吃鱼,小猫要喝水
'''
class Cat:def __init__(self,name,age):self.name = nameself.age = agedef getInfo(self):print(f'小猫的名字:{self.name},年龄:{self.age}')blue_cat = Cat("蓝猫",2)
blue_cat.getInfo()print('-'*30)black_cat = Cat('黑猫',3)
black_cat.getInfo()

 

2.8.2 __str__ 的使用

'''需求:小猫爱吃鱼,小猫要喝水
'''
class Cat:def __init__(self,name,age):self.name = nameself.age = agedef getInfo(self):print(f'小猫的名字:{self.name},年龄:{self.age}')def __str__(self):return f'{self.name}----{self.age}'blue_cat = Cat("蓝猫",2)
print(blue_cat)print('-'*30)black_cat = Cat('黑猫',3)
print(black_cat)

2.8.3  __del__ 的使用

3、案例1——小明爱跑步

     

class Person:def __init__(self,name,weight):self.name = nameself.weight = weightdef __str__(self):return f'姓名:{self.name}-----体重:{self.weight}'def run(self):print(f"{self.name}----跑步")self.weight -= 0.5def eat(self):print(f"{self.name}----吃完后")self.weight += 1person = Person('小明',75)
print(person)    # 姓名:小明-----体重:75person.run()
print(person)    # 姓名:小明-----体重:74.5person.eat()
print(person)    # 姓名:小明-----体重:75.5

4、小结

5、作业

5.1  定义一个学生类

class Student:def __init__(self, name, age):self.name = nameself.age =agedef __str__(self):return f'姓名:{self.name}, 年龄:{self.age}'def eat(self):print(f'{self.name} 要吃饭')def sleep(self):print(f'{self.name} 要睡觉')def addAge(self):print('过了一个年')self.age += 1xm = Student('小明',18)
xm.eat()
xm.sleep()
xm.addAge()
print(xm)print('-'*30)
xh = Student('小红',17)
xh.eat()
xh.sleep()
xh.addAge()
print(xh)

5.2 定义一个电脑

class Computer:def __init__(self,brand,price):self.brand = brandself.price = pricedef playMovie(self,movie_name):print(f"{self.brand} 电脑播放 {movie_name}")xm = Computer('小米',10000)
xm.playMovie("葫芦娃")apple = Computer('苹果',16999)
apple.playMovie("变形金刚")

6、封装案例——存放家具

# 房子类
class House:def __init__(self, name, total_area):self.name = name  # 户型self.total_area = total_area   # 总面积self.free_area = total_area  # 剩余面积self.item_list = []  # 家具名称列表def __str__(self):return f"户型:{self.name}---总面积:{self.total_area}----剩余面积:{self.free_area}---家具名称:{self.item_list}"def add_item(self,item):  # item 家具对象if self.free_area > item.area:self.item_list.append(item.name)self.free_area = self.total_area - item.areaprint(f'{item.name}  添加成功!')else:print('房间不足以放家具')# 家具类
class HouseItem:def __init__(self,name,area):self.name = nameself.area = areadef __str__(self):return f'{self.name} ---占地面积(平方米):{self.area}'bed = HouseItem('席梦思',4)
chest = HouseItem('衣柜',2)
table = HouseItem('餐桌',1.5)
print(bed)
print(chest)
print(table)print('-'*30)house = House('三室',109)
house.add_item(bed)
house.add_item(chest)
print(house)

7、案例——登录页面(用于后续的自动化测试学习)

class LoginPage:def __init__(self,username,password,code):self.username = usernameself.password = passwordself.code = codeself.btn = '登录'def login(self):print(f'1、输入用户名: {self.username}')print(f'2、输入密码: {self.password}')print(f'3、输入验证码: {self.code}')print(f'4、点击按钮: {self.btn}')loginPage = LoginPage('admin','112345','12hf')
loginPage.login()

8、私有 和 公有

9、继承

9.1 继承定义

9.2 案例——继承

class Animals:def eat(self):print(f'在吃')class Dog(Animals):def jiao(self):print('叫')class Quan(Dog):pass# animals = Animals()
# animals.eat()
dog = Dog()
dog.eat()
dog.jiao()
print('-'*30)
quan = Quan()
quan.eat()
quan.jiao()

 

10、重写

class Dog:def bark(self):print('汪汪汪叫')class Quan(Dog):def bark(self):    # 重写父类的bark()方法print('嗷嗷叫')quan = Quan()
quan.bark()

class Dog:def bark(self):print('汪汪汪叫')class Quan(Dog):def bark(self):    # 重写父类的bark()方法print('嗷嗷叫')super().bark()print('嗷嗷叫')quan = Quan()
quan.bark()

11、多态

12、属性和方法

12.1 属性的划分

       

12.2 练习

class Dog:my_count = 0    # 定义类属性def __init__(self,name):  # 定义实例属性,init方法中self.name = name# 每创建一个对象,就会调用init方法Dog.my_count += 1dog = Dog('小花')
dog = Dog('斑点狗')
print(Dog.my_count)   # 2         一般用 类名.属性名 调用。

12.3 方法的划分

12.3.1 案例——游戏类

import randomclass Game:# 类属性top_score = 0   # 记录游戏的最高分def __init__(self, name):self.name = namedef show_help(self):print('这是游戏的帮助信息')def show_top_score(self):print(f'游戏的最高分: {Game.top_score}')def start_game(self):random_num = random.randint(10, 100)  # 生成随机数10-100   (本次游戏得分)print(f'本次游戏得分----- {random_num}')if random_num > Game.top_score:Game.top_score = random_numgame = Game('小王')
game.start_game()
game.show_top_score()print('-'*30)
game.start_game()
game.show_top_score()
game.show_help()

【优化代码】

12.4 补充概念——哈希、is

13、小结

         

14、文件

14.1 文件介绍

14.2 打开文件、读-写文件、关闭文件

      


14.3 文件——案例

14.3.1 写入文件

#  1、打开文件
f = open('a.txt',mode='w',encoding='utf-8')# 2、写入文件
f.write('偷得浮生半日')# 3、关闭文件
f.close()

14.3.2 读文件

# 1、打开文件
f = open('a.txt', 'r',encoding='utf-8')
# 2、读文件
buff = f.read()
print(buff)
# 3、关闭文件
f.close()

14.4 使用with open打开文件

with open('a.txt', 'a', encoding='utf-8') as f:f.write('\n窗前明月光\n')f.write('\n疑是地上霜\n')

14.5 按行读取文件内容

# with open('b.txt',encoding='utf-8') as f:
#     while True:
#         buff = f.readline()
#         if buff == 0:
#             break
#         else:
#             print(buff, end='')with open('b.txt','r', encoding='utf-8') as f:for i in f:print(i,end='')

14.6 json文件的处理

14.6.1 json文件的语法

【json文件】

{"name": "小明","age": 18,"isMen": true,"like": ["听歌","游戏","购物","吃饭","睡觉","打豆豆"],"address": {"country": "中国","city": "上海"}
}
import jsonwith open('info.json','r',encoding='utf-8') as f:result = json.load(f)print(result)print(result['name'])print(result['address']['city'])

14.6.2 json 练习1

[{"name": "小明","age": 18,"isMen": true,"like": ["听歌","游戏","购物","吃饭","睡觉","打豆豆"],"address": {"country": "中国","city": "上海"}},{"name": "小红","age": 17,"isMen": false,"like": ["听歌","学习","购物"],"address": {"country": "中国","city": "北京"}}
]
import jsonwith open('info1.json','r',encoding='utf-8') as f:f_list = json.load(f)for i in f_list:print(i['name'], i['age'], i['address']['city'])

14.6.3 json 练习2

import json
newList = []
with open('login.json','r',encoding='utf-8') as f:info_list = json.load(f)for item in info_list:newList.append((item['username'],item['password'],item['expect']))print(newList)
# [('admin', '123456', '登录成功'), ('root', '123456', '登录失败'), ('admin', '1234567', '登录失败')]

14.7 json写入

import jsonlist_json = [('admin', '123456', '登录成功'), ('root', '123456', '登录失败'), ('admin', '1234567', '登录失败')]
with open('info4.json','w',encoding='utf-8') as f:# json.dump(list_json,f)# json.dump(list_json, f,ensure_ascii=False)   # 显示中文json.dump(list_json,f,ensure_ascii=False, indent=2)  # 显示缩进

 

15、异常

15.1 异常的定义


15.2【捕获所有的异常】

try:num = input("请输入数字:")num = int(num)print('num===', num)
except:print("异常,请输入数字!!")

15.3【捕获指定异常】

try:num = input("请输入数字:")num = int(num)print('num===', 10/num)
except ValueError:print("异常,请输入数字!!")

15.4 【捕获多个指定类型的异常】

try:num = input("请输入数字:")num = int(num)print('num===', 10/num)
except ValueError:print("异常,请输入数字!!")
except ZeroDivisionError:print('除数不能为0')

15.5 【异常捕获的完整版本】

【常用下方的代码】

15.6  异常传递

16、小结

17、模块和包

17.1  模块的导入

           


快捷导入包:


17.2 模块的查找顺序

18、__name__的作用

18.1 练习

19、包


今天暂时到这里啦~

相关文章:

day15 python(3)——python基础(完结!!)

【没有所谓的运气&#x1f36c;&#xff0c;只有绝对的努力✊】 目录 1、函数 1.1 函数传参中的拆包 1.2 匿名函数的定义 1.3 匿名函数练习 1.4 匿名函数应用——列表中的字典排序 2、面向对象 OOP 2.1 面向对象介绍 2.2 类和对象 2.3 类的构成和设计 2.4 面向对象代码…...

/:087启动游戏时提示丢失”d3dx···.dll””VCOMP···.dll”

/:087启动游戏时提示丢失”d3dx.dll””VCOMP.dll”或遇到应用程序无法正常启动&#xff08;0xc000007b&#xff09;和游戏有图像没有声音等情况。 主要是因为系统缺少大型游戏/软件运行的必备组件&#xff0c;这些组件有DirectX&#xff0c;Visual C2010&#xff0c;2012&…...

利用PHP和phpSpider进行图片爬取及下载

利用PHP和phpSpider进行图片爬取及下载&#xff0c;可以遵循以下步骤。phpSpider是一个开源的PHP爬虫框架&#xff0c;它可以帮助你轻松地抓取网页内容。以下是一个基本的步骤指南&#xff1a; 1. 安装phpSpider 首先&#xff0c;你需要确保你已经安装了Composer&#xff08;…...

企业架构划分探讨:业务架构与IT架构的利与弊

在企业架构&#xff08;EA&#xff09;的江湖里&#xff0c;大家一直致力于如何把企业的复杂性简化成有条有理的架构蓝图。有人选择把企业架构分成业务架构和IT架构&#xff0c;而IT架构又进一步细分为应用架构、数据架构和技术架构。但一提到这种划分方式&#xff0c;总有人跳…...

Java设计模式 —— 【结构型模式】桥接模式详解

前言 现在有一个需求&#xff0c;需要创建不同的图形&#xff0c;并且每个图形都有可能会有不同的颜色。 首先我们看看用继承来实现&#xff1a; 我们可以发现有很多的类&#xff0c;假如我们再增加一个形状或再增加一种颜色&#xff0c;就需要创建更多的类。 试想&#xf…...

MySQL学习之DDL操作

目录 数据库的操作 创建 查看 选择 删除 修改 数据类型 表的创建 表的修改 表的约束 主键 PRIMARY KEY 唯一性约束 UNIQUE 非空约束 NOT NULL 外键约束 约束小结 索引 索引分类 常规索引 主键索引 唯一索引 外键索引 优点 缺点 视图 创建 删除 修改…...

游戏AI实现-寻路算法(A*)

A*&#xff08;A-star&#xff09;是一种图遍历和寻路算法&#xff0c;由于其完整性、最优性和最佳效率&#xff0c;它被用于计算机科学的许多领域。给定一个加权图、一个源节点和一个目标节点&#xff0c;该算法将找到从源到目标的最短路径&#xff08;相对于给定的权重&#…...

spring学习(spring的IoC思想、spring容器、spring配置文件、依赖注入(DI)、BeanProxy机制(AOP))

目录 一、spring-IoC。 &#xff08;1&#xff09;spring框架。(诞生原因及核心思想) 1、为什么叫框架&#xff1f; 2、spring框架诞生的技术背景。 &#xff08;2&#xff09;控制反转&#xff08;IoC&#xff09;。 &#xff08;3&#xff09;spring的Bean工厂和IoC容器。 &a…...

谁说C比C++快?

看到这个问题&#xff0c;我我得说&#xff1a;这事儿没有那么简单。 1. 先把最大的误区打破 "C永远比C快" —— 某位1990年代的程序员 这种说法就像"自行车永远比汽车省油"一样荒谬。我们来看个例子&#xff1a; // C风格 char* str (char*)malloc(100…...

GEE+本地XGboot分类

GEE本地XGboot分类 我想做提取耕地提取&#xff0c;想到了一篇董金玮老师的一篇论文&#xff0c;这个论文是先提取的耕地&#xff0c;再做作物分类&#xff0c;耕地的提取代码是开源的。 但这个代码直接在云端上进行分类&#xff0c;GEE会爆内存&#xff0c;因此我准备把数据下…...

OpenCV相机标定与3D重建(24)计算两个二维点集之间的最佳仿射变换矩阵(2x3)函数estimateAffine2D()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 计算两个二维点集之间的最优仿射变换&#xff0c;它计算 [ x y ] [ a 11 a 12 a 21 a 22 ] [ X Y ] [ b 1 b 2 ] \begin{bmatrix} x\\ y\\ \en…...

UIP协议栈 TCP通信客户端 服务端,UDP单播 广播通信 example

文章目录 1. TCP通信 客户端&#xff08;关键配置&#xff09;2. TCP 服务端配置3. UDP 点播通信4. UDP 广播通信5. UIP_UDP_APPCALL 里边的处理example6. TCP数据处理 &#xff0c;UIP_APPCALL调用的函数 UIP_APPCALL TCP的数据都在这个宏定义的函数里进行数据处理的 UDP 数据…...

【NoSQL系列】为什么要使用Redis?

第一次知道Redis是以前准备面试的时候&#xff0c;只知道是用来缓存数据的。随着这几年的工作&#xff0c;对软件的认识从盲人摸象到睁眼看世界。 在常用的软件架构评价模型中&#xff0c;性能、可用性、安全性和可维护性是常见的评价属性&#xff0c;客户总希望系统响应又快有…...

MySQL Explain 分析SQL语句性能

一、EXPLAIN简介 使用EXPLAIN关键字可以模拟优化器执行SQL查询语句&#xff0c;从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。 &#xff08;1&#xff09; 通过EXPLAIN&#xff0c;我们可以分析出以下结果&#xff1a; 表的读取顺序数据读取…...

IIS部署程序https是访问出现403或ERR_HTTP2_PROTOCOL_ERROR

一、说明 在windows server 2016中的IIS程序池里部署一套系统&#xff0c;通过https访问站点&#xff0c;同时考虑到安全问题以及防攻击等行为&#xff0c;就用上了WAF云盾功能&#xff0c;能有效的抵挡部分攻击&#xff0c;加强网站的安全性和健壮性。 应用系统一直能够正常…...

学技术学英文:代码中的锁:悲观锁和乐观锁

本文导读&#xff1a; 1. 举例说明加锁的场景&#xff1a; 多线程并发情况下有资源竞争的时候&#xff0c;如果不加锁&#xff0c;会出现数据错误&#xff0c;举例说明&#xff1a; 业务需求&#xff1a;账户余额>取款金额&#xff0c;才能取钱。 时间线 两人共有账户 …...

青少年编程与数学 02-004 Go语言Web编程 02课题、依赖管理

青少年编程与数学 02-004 Go语言Web编程 02课题、依赖管理 课题摘要:一、项目结构各目录说明&#xff1a; 二、依赖项三、依赖管理任务四、依赖管理步骤1. 初始化Go Modules项目2. 添加依赖3. 指定依赖版本4. 更新依赖5. 清理未使用的依赖6. 离线工作7. 模块隔离8. 可重现构建 …...

MyBatis写法汇总

Mybatis写法汇总 1. 批量操作 1.1 批量插入 <insert id"batchInsert" parameterType"java.util.List">INSERT INTO user (username, password, create_time) VALUES<foreach collection"list" item"item" separator"…...

【Linux学习】十五、Linux/CentOS 7 用户和组管理

文章目录 一、组的管理1.组的创建格式&#xff1a;参数&#xff1a; 2.组的删除格式&#xff1a;参数&#xff1a; 3.组的属性修改格式&#xff1a;参数&#xff1a; 4.查看组的信息①cat /etc/group 命令②getent group 命令③仅显示系统中所有组名 二、用户的管理①超级用户&…...

三维无人机航迹算法的目标函数如何确定

一、定义目标函数 在三维无人机航迹算法中,目标函数的确定通常基于具体的任务需求和飞行约束。以下是一个简单的例子,展示了如何为三维无人机航迹规划定义一个目标函数。 例子:最小化飞行时间和避障的三维无人机航迹规划 1.任务描述:无人机需要从起点飞到终点,同时避开一些…...

穿越机老鸟踩坑实录:MPU6000传感器在F4飞控上的IMU方向“玄学”配置

穿越机IMU方向配置实战&#xff1a;从MPU6000异常自旋到飞控底层校准 当你的穿越机在通电瞬间像被无形大手狠狠抽了一记耳光般疯狂自旋&#xff0c;而Betaflight地面站里陀螺仪数据却显示"一切正常"时&#xff0c;这往往意味着你正遭遇IMU方向配置的"量子纠缠态…...

Windows驱动清理终极指南:用DriverStore Explorer安全释放数十GB磁盘空间

Windows驱动清理终极指南&#xff1a;用DriverStore Explorer安全释放数十GB磁盘空间 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 你的Windows电脑是否经常提示C盘空间不足&#xff…...

量化交易强化学习环境TradingGym:从Gym接口到实战策略训练

1. 项目概述&#xff1a;一个为量化交易策略量身定制的强化学习训练场如果你正在尝试将强化学习&#xff08;Reinforcement Learning, RL&#xff09;应用到股票、期货或加密货币的量化交易中&#xff0c;大概率会遇到一个共同的困境&#xff1a;环境太难搭了。市面上的回测框架…...

基于Sovereign-MCP-Servers构建私有AI工具链:从协议原理到Docker化部署

1. 项目概述与核心价值最近在折腾AI应用开发&#xff0c;特别是想给Claude、Cursor这类工具加上“联网”和“执行”能力时&#xff0c;绕不开一个概念&#xff1a;MCP&#xff08;Model Context Protocol&#xff09;。简单说&#xff0c;MCP就是一套标准协议&#xff0c;它能让…...

符号链接批量管理工具 linko:声明式配置与自动化实践

1. 项目概述与核心价值最近在折腾一些自动化脚本和工具链&#xff0c;发现一个挺有意思的仓库&#xff1a;monsterxx03/linko。乍一看这个名字&#xff0c;你可能会有点懵&#xff0c;这到底是干嘛的&#xff1f;是链接管理工具&#xff0c;还是某种网络代理的客户端&#xff1…...

5分钟掌握浏览器串口调试:提升嵌入式开发效率300%的终极指南

5分钟掌握浏览器串口调试&#xff1a;提升嵌入式开发效率300%的终极指南 【免费下载链接】SerialAssistant A serial port assistant that can be used directly in the browser. 项目地址: https://gitcode.com/gh_mirrors/se/SerialAssistant 你是否还在为串口调试工具…...

HTTP客户端设计哲学:从axios到hoomanity的易用性演进

1. 项目概述&#xff1a;一个为人类设计的HTTP客户端在构建现代应用程序时&#xff0c;与外部API或服务进行HTTP通信几乎是每个开发者都会遇到的日常任务。无论是调用一个天气接口、上传文件到云存储&#xff0c;还是与自家的微服务进行数据交换&#xff0c;我们都需要一个可靠…...

3D打印印章模具全攻略:从数字设计到硅胶翻模的实践指南

1. 项目概述&#xff1a;当3D打印遇上传统印章艺术我一直对融合数字制造与传统手工艺的项目特别着迷&#xff0c;最近花了不少时间折腾用3D打印模具来制作定制印章&#xff0c;整个过程就像在数字世界和物理世界之间架起了一座桥。简单来说&#xff0c;这个项目的核心思路是&am…...

小红书自动化工具xhs-skill:接口逆向与数据采集实战指南

1. 项目概述&#xff1a;一个面向小红书内容创作的效率工具箱最近在逛GitHub的时候&#xff0c;发现了一个挺有意思的项目&#xff0c;叫PengJiyuan/xhs-skill。光看名字&#xff0c;你大概能猜到它和小红书有关&#xff0c;但具体是做什么的&#xff0c;可能有点模糊。作为一个…...

出门在外也能用!OpenAI 将 Codex 接入 ChatGPT 移动端

曾经在企业办公室工作过的人&#xff0c;可能都见过这样的场景&#xff1a;同事们把笔记本电脑托在手臂上&#xff0c;从一个会议室走到另一个会议室。倒也不是非要在走廊、电梯或楼道里处理邮件&#xff0c;只是不想合上盖子然后再等电脑重启。看似有些滑稽&#xff0c;但又不…...