有效避免sleep带来的线程休眠问题(如界面假死)publicstaticvoidDelay(inttime){intstart=Environment.TickCount;while(Math.Abs(Environment.TickCount-start)
Python多进程 multiprocessing
培之
编程语言 python 机器学习 开发语言
在大数据时代,Python已经成为最受追捧的语言。在本文中,让我们专注于Python的一个特定方面,它使其成为最强大的编程语言之一——Multi-Processing。在阅读本文之前,我建议您阅读我之前关于Python中的线程的文章,因为它可以为当前文章提供更好的上下文。多进程是什么?假设你是一名小学生,你的作业是让1200对数字相乘,这让你感到麻木。假设您能够在3秒内将一对数字相乘。那么总共需要
Flask --(2)Flask 框架的诞生
feiyy404
flask
Flask诞生于2010年,是Arminronacher(人名)用Python语言基于Werkzeug工具箱编写的轻量级Web开发框架。Flask本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login),都需要用第三方的扩展来实现。比如可以用Flask-extension加入ORM、窗体验证工具,文件上传、身份验证等。Flask没有默认使用
2K200Hz显示器哪个值得选?
yybcp9
计算机外设
眼花缭乱的显示器市场,究竟在2K200Hz显示器这个领域,哪个品牌的哪个型号值得选呢?今天就来给大家讲讲。1.HKCG27H2Pro-2K200Hz显示器哪个值得选外观设计-HKCG27H2Pro2K200Hz显示器整体风格:G27H2Pro的外观充满电竞风又不失简约大气,猎鹰系列标志性设计很吸睛,背部“鹰翼图腾”切割线搭配炎红色倒C型弧线,科技感爆棚,放在桌面上瞬间让整个空间的电竞氛围感拉满。边
Docker入门学习
_Eden_
docker 学习 容器
一、容器1.将单个操作系统中的资源划分到孤立的组中,在孤立的组中平衡有冲突的资源使用需求2.Docker提供了容器管理的工具可以无需关注底层操作,使用效果类似于轻量级的虚拟机,并且容器的创建和停止相对于虚拟机来说比较快;虽然不同容器之间为了保证一定的安全性采取安全隔离,但是在某些情况下需要消息共享灯可以利用通信机制进行通信二、虚拟化虚拟化的核心是对资源进行抽象呈现出来来打破实体结构之间不可切割的障
千万年薪招揽AI大牛!罗福莉加盟小米,将如何改变其大模型战略?
前端
近年来,人工智能(AI)领域发展迅速,其中大模型技术的突破更是引领着新一轮科技浪潮。AI代码生成器作为AI技术的重要应用,也正逐渐改变着软件开发的模式。1月18日,一则重磅消息震惊业界:DeepSeek开源大模型DeepSeek-V2的关键开发者之一罗福莉将加入小米,并可能领导小米大模型团队,年薪高达千万级别。这一举动不仅体现了小米对AI大模型技术的重视,也预示着小米在大模型领域的战略布局将迎来新
会捡垃圾、能干家务,元萝卜“视觉+机械臂”技术扫地机器人首秀
量子位
在2025开年科技盛宴CES(国际消费电子展)上,AI机器人无疑成为全场焦点,而其中来自中国科技企业展示和发布的仿生多关节机械手技术在扫地机器人产品上的应用,更获得了全球媒体的高度关注。通过将视觉感知与机械臂技术相结合,能够自主完成拾取垃圾入桶等任务,不仅展示了家用机器人发展的未来形态,也让大众看到了具身智能机器人融入家庭生活的广阔前景。随着大模型技术和具身智能浪潮汹涌而至,家用机器人正迎来全新发
vite-plugin-vconsole在windows不生效的原因排查
vitevue3
背景在Vite使用vConsole,方便移动端的本地开发。官方文档见这里:https://github.com/vadxq/vite...。场景复现windows客户端"vite-plugin-vconsole":"^1.1.0""vite":"^2.7.0","vconsole":"^3.9.5",nodev12.18.3yarn1.22.15vite.config.js配置如下:import{
例题4-10 输出m到n之间的全部素数 (20 分)
@爱学习的小姜
PTA c语言 c语言
例题4-10输出m到n之间的全部素数(20分)本题要求输出给定整数M和N区间内的全部素数,每行输出10个。素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。输入格式:输入在一行中给出两个正整数M和N(1≤M≤N≤500)。输出格式:输出素数,每个数占6位,每行输出10个。如果最后一行输出的素数个数不到10个,也需要换行。若输入的范围不合法,则输出"Invalid."。输入样例1:21
Pulsar:网络足迹的扫描尖兵
渗透小白鼠
网络 php 开发语言
免责声明:该文章所涉及到的安全工具和技术仅做分享和技术交流学习使用,使用时应当遵守国家法律,做一位合格的白帽专家。使用本工具的用户需要自行承担任何风险和不确定因素,如有人利用工具做任何后果均由使用者承担,本人及文章作者还有泷羽sec团队不承担任何责任如本文章侵权,请联系作者删除B站红队公益课:https://space.bilibili.com/350329294学习网盘资源链接:https://
c语言--第一章练习题
weixin_45958231
c语言 java 算法
第一章练习题1.一个C程序的执行是从(A)。A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序文件的第一个函数开始,到本程序main函数结束D)本程序的main函数开始,到本程序文件的最后一个函数结束A)本程序的main函数开始,到main函数结束正确。C程序的执行总是从main函数开始,并在main函数中的return语句(如
华为交换机vlan配置举例_一步步详解华为交换机配置实例,一看就会
weixin_39595164
华为交换机vlan配置举例
项目配置:一、配置LSW11、划分vlan那么就在lsw1中创建了两个vlan,10与20。2、配置与pc1连接的0/0/1端口,将0/0/1端口分配给vlan10。3、配置与pc2连接的0/0/2端口,将0/0/2端口分配给vlan20。4、配置与LSW2连接的0/0/3端口,允许通过vlan10与vlan20。这里面0/0/3端口配置的模式是trunk,因为端口0/0/3是与lsw2相关的。那
华为防火墙做单臂路由_华为单臂路由配置详解
mizore
华为防火墙做单臂路由
利用华为路由器单臂路由的配置原理,可以使同一交换机上不同VLAN之间实现通信。需要掌握以下基本概念:链路类型-交换机连接主机的端口为access链路;-交换机连接路由器的端口为trunk链路子接口-路由器的物理接口可以被划分为多个子接口;-每个子接口对应一个VLAN的网关配置拓扑图如下所示:在交换机上配置如下:[SW]vlanbatch1020[SW]interfaceEthernet0/0/2[
k8s中使用MySQL共享存储_k8s使用NFS做动态存储做mysql容器主从同步
罗-Moline
k8s中使用MySQL共享存储
k8s里面存储一直是比较难搞得,之前做的静态存储,写这篇文档记录一下动态存储创建的过程。使用动态存储的好处是开发者可以更关注自己的开发环境,不用关心后端的资源,还有就是更换存储类型不用做大的改变,只需切换一下storageclassName即可。根据这篇博客来的!谢谢博主!!!https://www.cnblogs.com/00986014w/p/9406962.html我把大致上思路分成三步:1
Python数据分析与可视化研究
阿尔法星球
python python 数据分析 开发语言
Python数据分析与可视化研究摘要随着大数据和人工智能技术的飞速发展,Python数据分析与可视化技术已成为现代科学研究、企业决策等领域不可或缺的工具。本研究全面梳理了Python在数据分析与可视化领域的基本理论框架和关键技术,系统分析了Pandas、NumPy等核心数据分析库以及Matplotlib、Seaborn等可视化库的应用优势与特点。通过实际案例,本研究深入探讨了Python在数据清洗
《CPython Internals》阅读笔记:p336-p352
python
《CPythonInternals》学习第17天,p336-p352总结,总计17页。一、技术总结1.GDBGDB是GNUDbugger的缩写。(1)安装sudoaptinstallgdb(2)创建.gdbinit文件touch~/.gdbinitvim~/.gdbinit(3)配置.gdbinit文件add-auto-load-safe-path/project/cpython注:1./proj
元戎启行周光:智能驾驶的竞争,靠VLA模型决出胜负
量子位
智能驾驶行业,有黑马杀出。据中国电动汽车百人会最新数据统计,自2024年9月至2024年12月,短短4个月时间,元戎启行凭借两款量产车,冲击行业第一梯队,在城区高阶智能驾驶供应商市场中拿下近10%的市场份额。对元戎启行来说,10%,只是一个开始。2025年1月22日,在第17届日本国际汽车工业技术展上,元戎启行再次亮出技术杀手锏——VLA模型(VisionLanguageActionModel,视
【华为网络-配置-005】-单臂路由配置
郁闷的猴子哥哥
华为 网络 学习
要求:1、PC1能够和PC2互相通信一、AR1配置交换机LSW1这里不再进行vlan配置。可参考链接配置1、GE0/0/1:trunk,允许vlan1020通过2、GE0/0/2:access,默认vlan103、GE0/0/3:access,默认vlan20(站内链接:vlan配置方法)创建vlan1020。[AR1]vlanbatch1020进入物理接口的子接口(接口后跟个点表示子接口,子接口
基于卡尔曼滤波的系统参数辨识matlab仿真
软件算法开发
MATLAB程序开发 # 参数辨识 matlab 网络
目录1.程序功能描述2.测试软件版本以及运行结果展示3.核心程序4.本算法原理4.1、卡尔曼滤波的基本原理4.2、基于卡尔曼滤波的系统参数辨识5.完整程序1.程序功能描述通过kalman滤波的方法,对系统的参数进行辨识,整个程序仿真输出参数辨识的收敛过程,参数辨识误差,参数辨识之后系统的输出和真实的系统输出误差,最后设置不同的信噪比,对比不同干扰下的系统参数辨识误差。2.测试软件版本以及运行结果展
华为单臂路由配置
骞翮思远翥
华为 智能路由器 网络
@TOC华为单臂路由配置pc设置给第一个pc设置一个ip192.168.10.10子网掩码为255.255.255.0网关192.168.10.254第二设置ip192.168.20.20子网掩码为255.255.255.0网关192.168.10.254交换机设置给交换机连接到两个pc的口进行VLAN设置一个是vlan10,一个是vlan20命令如下先进入视图system-view创建vlanv
使用 Docker 部署 MySQL 服务并实现远程连接
漓°
Docker docker 容器 mysql linux bash
简介DockerDocker是一个开放源代码软件,是一个开放平台,用于开发应用、交付(shipping)应用、运行应用。Docker允许用户将基础设施(Infrastructure)中的应用单独分割出来,形成更小的颗粒(容器),从而提高交付软件的速度。Docker容器与虚拟机类似,但二者在原理上不同。容器是将操作系统层虚拟化,虚拟机则是虚拟化硬件,因此容器更具有便携性、高效地利用服务器。容器更多的
【AIGC半月报】AIGC大模型启元:2024.07(上)
LeeZhao@
AIGC 人工智能 AI Agent
AIGC大模型启元:2024.07(上)(1)AIGVBench-T2V(文生视频基准测评)(2)Gen-3Alpha(Runway)(3)Step-2、Step-1.5V、Step-1X(阶跃星辰开源大模型)(4)InternVL2.0“书生·万象”(上海人工智能实验室)(5)CodeGeeX4-ALL-9B(智谱AI)(6)TTT(全新LLM架构)(1)AIGVBench-T2V(文生视频基准
2024-2025第九届华为ICT大赛中国实践赛省复赛相关安排公布
智汇云校乐乐老师
华为ICT大赛
第九届华为ICT大赛中国实践赛省初赛已于2024年11月16-17日结束,省复赛晋级名单陆续公布,现将第九届ICT大赛中国实践赛省复赛晋级名单以及省复赛相关安排如下:主办单位主办单位:华为技术有限公司承办单位:华为授权培训服务伙伴省复赛安排1、中国实践赛省复赛时间及地点安排:比赛时间:2024年12月7日9:30-11:00(网络赛道)15:00-16:30(云、基础软件、昇腾AI赛道)比赛地点:
在WSL 2 (Ubuntu 22.04)安装Docker Ce 启动错误解决
梦想画家
云原生 工具软件 ubuntu docker linux wsl2
查看WSL版本在Windows命令提示符(CMD)或PowerShell中,你可以使用以下命令来查看已安装的WSL发行版及其版本信息:wsl-l-v(base)PSC:\Users\Lenovo>wsl-l-vNAMESTATEVERSION*Ubuntu-22.04Running2docker启动报错failedtostartdaemon:Errorinitializingnetworkcont
1088 Rational Arithmetic
魔猴烧酒
c++ 算法 开发语言
Fortworationalnumbers,yourtaskistoimplementthebasicarithmetics,thatis,tocalculatetheirsum,difference,productandquotient.InputSpecification:Eachinputfilecontainsonetestcase,whichgivesinonelinethetworat
Spring4.1新特性——Spring MVC增强
jinnianshilongnian
spring 4.1
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
mysql 性能查询优化
annan211
java sql 优化 mysql 应用服务器
1 时间到底花在哪了?
mysql在执行查询的时候需要执行一系列的子任务,这些子任务包含了整个查询周期最重要的阶段,这其中包含了大量为了
检索数据列到存储引擎的调用以及调用后的数据处理,包括排序、分组等。在完成这些任务的时候,查询需要在不同的地方
花费时间,包括网络、cpu计算、生成统计信息和执行计划、锁等待等。尤其是向底层存储引擎检索数据的调用操作。这些调用需要在内存操
windows系统配置
cherishLC
windows
删除Hiberfil.sys :使用命令powercfg -h off 关闭休眠功能即可:
http://jingyan.baidu.com/article/f3ad7d0fc0992e09c2345b51.html
类似的还有pagefile.sys
msconfig 配置启动项
shutdown 定时关机
ipconfig 查看网络配置
ipconfig /flushdns
人体的排毒时间
Array_06
工作
========================
|| 人体的排毒时间是什么时候?||
========================
转载于:
http://zhidao.baidu.com/link?url=ibaGlicVslAQhVdWWVevU4TMjhiKaNBWCpZ1NS6igCQ78EkNJZFsEjCjl3T5EdXU9SaPg04bh8MbY1bR
ZooKeeper
cugfy
zookeeper
Zookeeper是一个高性能,分布式的,开源分布式应用协调服务。它提供了简单原始的功能,分布式应用可以基于它实现更高级的服务,比如同步, 配置管理,集群管理,名空间。它被设计为易于编程,使用文件系统目录树作为数据模型。服务端跑在java上,提供java和C的客户端API。 Zookeeper是Google的Chubby一个开源的实现,是高有效和可靠的协同工作系统,Zookeeper能够用来lea
网络爬虫的乱码处理
随意而生
爬虫 网络
下边简单总结下关于网络爬虫的乱码处理。注意,这里不仅是中文乱码,还包括一些如日文、韩文 、俄文、藏文之类的乱码处理,因为他们的解决方式 是一致的,故在此统一说明。 网络爬虫,有两种选择,一是选择nutch、hetriex,二是自写爬虫,两者在处理乱码时,原理是一致的,但前者处理乱码时,要看懂源码后进行修改才可以,所以要废劲一些;而后者更自由方便,可以在编码处理
Xcode常用快捷键
张亚雄
xcode
一、总结的常用命令:
隐藏xcode command+h
退出xcode command+q
关闭窗口 command+w
关闭所有窗口 command+option+w
关闭当前
mongoDB索引操作
adminjun
mongodb 索引
一、索引基础: MongoDB的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的优化技巧。下面是创建索引的命令: > db.test.ensureIndex({"username":1}) 可以通过下面的名称查看索引是否已经成功建立: &nbs
成都软件园实习那些话
aijuans
成都 软件园 实习
无聊之中,翻了一下日志,发现上一篇经历是很久以前的事了,悔过~~
断断续续离开了学校快一年了,习惯了那里一天天的幼稚、成长的环境,到这里有点与世隔绝的感觉。不过还好,那是刚到这里时的想法,现在感觉在这挺好,不管怎么样,最要感谢的还是老师能给这么好的一次催化成长的机会,在这里确实看到了好多好多能想到或想不到的东西。
都说在外面和学校相比最明显的差距就是与人相处比较困难,因为在外面每个人都
Linux下FTP服务器安装及配置
ayaoxinchao
linux FTP服务器 vsftp
检测是否安装了FTP
[root@localhost ~]# rpm -q vsftpd
如果未安装:package vsftpd is not installed 安装了则显示:vsftpd-2.0.5-28.el5累死的版本信息
安装FTP
运行yum install vsftpd命令,如[root@localhost ~]# yum install vsf
使用mongo-java-driver获取文档id和查找文档
BigBird2012
driver
注:本文所有代码都使用的mongo-java-driver实现。
在MongoDB中,一个集合(collection)在概念上就类似我们SQL数据库中的表(Table),这个集合包含了一系列文档(document)。一个DBObject对象表示我们想添加到集合(collection)中的一个文档(document),MongoDB会自动为我们创建的每个文档添加一个id,这个id在
JSONObject以及json串
bijian1013
json JSONObject
一.JAR包简介
要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包:
1.commons-lang-2.0.jar
2.commons-beanutils-1.7.0.jar
3.commons-collections-3.1.jar
&n
[Zookeeper学习笔记之三]Zookeeper实例创建和会话建立的异步特性
bit1129
zookeeper
为了说明问题,看个简单的代码,
import org.apache.zookeeper.*;
import java.io.IOException;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ThreadLocal
【Scala十二】Scala核心六:Trait
bit1129
scala
Traits are a fundamental unit of code reuse in Scala. A trait encapsulates method and field definitions, which can then be reused by mixing them into classes. Unlike class inheritance, in which each c
weblogic version 10.3破解
ronin47
weblogic
版本:WebLogic Server 10.3
说明:%DOMAIN_HOME%:指WebLogic Server 域(Domain)目录
例如我的做测试的域的根目录 DOMAIN_HOME=D:/Weblogic/Middleware/user_projects/domains/base_domain
1.为了保证操作安全,备份%DOMAIN_HOME%/security/Defa
求第n个斐波那契数
BrokenDreams
今天看到群友发的一个问题:写一个小程序打印第n个斐波那契数。
自己试了下,搞了好久。。。基础要加强了。
&nbs
读《研磨设计模式》-代码笔记-访问者模式-Visitor
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.util.ArrayList;
import java.util.List;
interface IVisitor {
//第二次分派,Visitor调用Element
void visitConcret
MatConvNet的excise 3改为网络配置文件形式
cherishLC
matlab
MatConvNet为vlFeat作者写的matlab下的卷积神经网络工具包,可以使用GPU。
主页:
http://www.vlfeat.org/matconvnet/
教程:
http://www.robots.ox.ac.uk/~vgg/practicals/cnn/index.html
注意:需要下载新版的MatConvNet替换掉教程中工具包中的matconvnet:
http
ZK Timeout再讨论
chenchao051
zookeeper timeout hbase
http://crazyjvm.iteye.com/blog/1693757 文中提到相关超时问题,但是又出现了一个问题,我把min和max都设置成了180000,但是仍然出现了以下的异常信息:
Client session timed out, have not heard from server in 154339ms for sessionid 0x13a3f7732340003
CASE WHEN 用法介绍
daizj
sql group by case when
CASE WHEN 用法介绍
1. CASE WHEN 表达式有两种形式
--简单Case函数
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
--Case搜索函数
CASE
WHEN sex = '1' THEN
PHP技巧汇总:提高PHP性能的53个技巧
dcj3sjt126com
PHP
PHP技巧汇总:提高PHP性能的53个技巧 用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量, 单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的函数译注: PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。 1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍
Yii框架中CGridView的使用方法以及详细示例
dcj3sjt126com
yii
CGridView显示一个数据项的列表中的一个表。
表中的每一行代表一个数据项的数据,和一个列通常代表一个属性的物品(一些列可能对应于复杂的表达式的属性或静态文本)。 CGridView既支持排序和分页的数据项。排序和分页可以在AJAX模式或正常的页面请求。使用CGridView的一个好处是,当用户浏览器禁用JavaScript,排序和分页自动退化普通页面请求和仍然正常运行。
实例代码如下:
Maven项目打包成可执行Jar文件
dyy_gusi
assembly
Maven项目打包成可执行Jar文件
在使用Maven完成项目以后,如果是需要打包成可执行的Jar文件,我们通过eclipse的导出很麻烦,还得指定入口文件的位置,还得说明依赖的jar包,既然都使用Maven了,很重要的一个目的就是让这些繁琐的操作简单。我们可以通过插件完成这项工作,使用assembly插件。具体使用方式如下:
1、在项目中加入插件的依赖:
<plugin>
php常见错误
geeksun
PHP
1. kevent() reported that connect() failed (61: Connection refused) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: "fastc
修改linux的用户名
hongtoushizi
linux change password
Change Linux Username
更改Linux用户名,需要修改4个系统的文件:
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
古老/传统的方法是使用vi去直接修改,但是这有安全隐患(具体可自己搜一下),所以后来改成使用这些命令去代替:
vipw
vipw -s
vigr
vigr -s
具体的操作顺
第五章 常用Lua开发库1-redis、mysql、http客户端
jinnianshilongnian
nginx lua
对于开发来说需要有好的生态开发库来辅助我们快速开发,而Lua中也有大多数我们需要的第三方开发库如Redis、Memcached、Mysql、Http客户端、JSON、模板引擎等。
一些常见的Lua库可以在github上搜索,https://github.com/search?utf8=%E2%9C%93&q=lua+resty。
Redis客户端
lua-resty-r
zkClient 监控机制实现
liyonghui160com
zkClient 监控机制实现
直接使用zk的api实现业务功能比较繁琐。因为要处理session loss,session expire等异常,在发生这些异常后进行重连。又因为ZK的watcher是一次性的,如果要基于wather实现发布/订阅模式,还要自己包装一下,将一次性订阅包装成持久订阅。另外如果要使用抽象级别更高的功能,比如分布式锁,leader选举
在Mysql 众多表中查找一个表名或者字段名的 SQL 语句
pda158
mysql
在Mysql 众多表中查找一个表名或者字段名的 SQL 语句:
方法一:SELECT table_name, column_name from information_schema.columns WHERE column_name LIKE 'Name';
方法二:SELECT column_name from information_schema.colum
程序员对英语的依赖
Smile.zeng
英语 程序猿
1、程序员最基本的技能,至少要能写得出代码,当我们还在为建立类的时候思考用什么单词发牢骚的时候,英语与别人的差距就直接表现出来咯。
2、程序员最起码能认识开发工具里的英语单词,不然怎么知道使用这些开发工具。
3、进阶一点,就是能读懂别人的代码,有利于我们学习人家的思路和技术。
4、写的程序至少能有一定的可读性,至少要人别人能懂吧...
以上一些问题,充分说明了英语对程序猿的重要性。骚年
Oracle学习笔记(8) 使用PLSQL编写触发器
vipbooks
oracle sql 编程 活动 Access
时间过得真快啊,转眼就到了Oracle学习笔记的最后个章节了,通过前面七章的学习大家应该对Oracle编程有了一定了了解了吧,这东东如果一段时间不用很快就会忘记了,所以我会把自己学习过的东西做好详细的笔记,用到的时候可以随时查找,马上上手!希望这些笔记能对大家有些帮助!
这是第八章的学习笔记,学习完第七章的子程序和包之后