发表日期: 2022-05-29 17:10:37 浏览次数:88
甘肃省陇南外贸网站建设-双语网站制作-企业中英文网站优化推广-多语言集团网站定制开发

东晋、南北朝时期,陇南境内先后建立仇池、宕昌、武都、武兴、阴平5个胡人政权,称为“陇南五国”。296年,氐族首领杨茂搜建立仇池国,至371年为前秦苻坚所灭。族人杨定于历城再建仇池国,至442年被南朝刘宋所灭。424年,北魏拓跋焘封羌人梁弥忽为宕昌王,都城在今宕昌县城。566年,宕昌国被北周所灭。443年,仇池国灭亡后,氐人杨文德建立武都国。477年,武都国为北魏所灭。477年,武都王杨文度被北魏军所杀后,南朝刘宋政权封杨文弘为武都王,退守武兴(今陕西略阳),后改武都王为武兴王,建立武兴国。552年,武兴国为西魏所灭。477年,北魏灭武都国时,杨文度之叔杨广香助魏军杀杨文度,受封为阴平公,后南齐承认杨广香为阴平国之主,都阴平(今文县)。580年,阴平国为北周所灭。
隋唐时期,陇南地区政治经济相对穏定,唐代于陇南置文、武、成、迭、宕、岷等州。宝应元年(762年),吐蕃攻占陇南。咸通年间,唐收复武州,更名阶州,咸通七年(866年)收复成州。北宋熙宁六年(1073年),大将王韶打败吐蕃,收复陇南,吐蕃据有陇南前后共311年。宋末陇南为宋、金两国边境,战争频繁。南宋绍兴三十年(1160年),金大举攻宋,破凤州、大散关,朝廷命大将吴璘据守陇南。吴璘之子吴挺与西夏缔盟,共同攻金。开禧二年(1206年),吴挺之子吴曦叛宋,以阶、成、文、西和4州建立受金朝支持的政权,后宋军将士杀吴曦,4州归宋。南宋端平三年(1236年)蒙古军占领陇南。元代于礼县置礼店蒙古军元帅府,后更名为礼店文州番汉军民元帅府,在河州设吐蕃宣慰司。明清时期,陇南经历明末李自成起义、白莲教之乱、西北回民起义、太平天国等事件。
和传统的 C/C++、Java、C# 等语言相比,Python 对代码格式的要求没有那么严格,这种宽松使得用户在编写代码时比较舒服,不用在细枝末节上花费太多精力。我来举两个典型的例子:
Python 不要求在每个语句的最后写分号,当然写上也没错;
定义变量时不需要指明类型,甚至可以给同一个变量赋值不同类型的数据。
这两点也是 PHP、JavaScript、MATLAB 等常见脚本语言都具备的特性。
Python 是一种代表极简主义的编程语言,阅读一段排版优美的 Python 代码,就像在阅读一个英文段落,非常贴近人类语言,所以人们常说,Python 是一种具有伪代码特质的编程语言。
伪代码(Pseudo Code)是一种算法描述语言,它介于自然语言和编程语言之间,使用伪代码的目的是为了使被描述的算法可以容易地以任何一种编程语言(Pascal,C,Java,etc)实现。因此,伪代码必须结构清晰、代码简单、可读性好,并且类似自然语言。
如果你学过数据结构,阅读过严蔚敏的书籍,那你一定知道什么是伪代码。
为什么说简单就是杀手锏?一旦简单了,一件事情就会变得很纯粹;我们在开发 Python 程序时,可以专注于解决问题本身,而不用顾虑语法的细枝末节。在简单的环境中做一件纯粹的事情,那简直是一种享受。
开源,也即开放源代码,意思是所有用户都可以看到源代码。
Python 的开源体现在两方面:
① 程序员使用 Python 编写的代码是开源的。
比如我们开发了一个 BBS 系统,放在互联网上让用户下载,那么用户下载到的就是该系统的所有源代码,并且可以随意修改。这也是解释型语言本身的特性,想要运行程序就必须有源代码。
② Python 解释器和模块是开源的。
官方将 Python 解释器和模块的代码开源,是希望所有 Python 用户都参与进来,一起改进 Python 的性能,弥补 Python 的漏洞,代码被研究的越多就越健壮。
这个世界上总有那么一小撮人,他们或者不慕名利,或者为了达到某种目的,会不断地加强和改善 Python。千万不要认为所有人都是只图眼前利益的,总有一些精英会放长线钓大鱼,总有一些极客会做一些炫酷的事情。
开源并不等于免费,开源软件和免费软件是两个概念,只不过大多数的开源软件也是免费软件;Python 就是这样一种语言,它既开源又免费。
如果你想区分开源和免费的概念,请猛击:开源就等于免费吗?用事实来说话
用户使用 Python 进行开发或者发布自己的程序,不需要支付任何费用,也不用担心版权问题,即使作为商业用途,Python 也是免费的。
这里所说的高级,是指 Python 封装较深,屏蔽了很多底层细节,比如 Python 会自动管理内存(需要时自动分配,不需要时自动释放)。
高级语言的优点是使用方便,不用顾虑细枝末节;缺点是容易让人浅尝辄止,知其然不知其所以然。
解释型语言一般都是跨平台的(可移植性好),Python 也不例外,我们已经在《编译型语言和解释型语言的区别》中进行了讲解,这里不再赘述。
面向对象是现代编程语言一般都具备的特性,否则在开发中大型程序时会捉襟见肘。
Python 支持面向对象,但它不强制使用面向对象。Java 是典型的面向对象的编程语言,但是它强制必须以类和对象的形式来组织代码。
Python 的模块众多,基本实现了所有的常见的功能,从简单的字符串处理,到复杂的 3D 图形绘制,借助 Python 模块都可以轻松完成。
Python 社区发展良好,除了 Python 官方提供的核心模块,很多第三方机构也会参与进来开发模块,这其中就有 Google、Facebook、Microsoft 等软件巨头。即使是一些小众的功能,Python 往往也有对应的开源模块,甚至有可能不止一个模块。
Python 的可扩展性体现在它的模块,Python 具有脚本语言中最丰富和强大的类库,这些类库覆盖了文件 I/O、GUI、网络编程、数据库访问、文本操作等绝大部分应用场景。
这些类库的底层代码不一定都是 Python,还有很多 C/C++ 的身影。当需要一段关键代码运行速度更快时,就可以使用 C/C++ 语言实现,然后在 Python 中调用它们。Python 能把其它语言“粘”在一起,所以被称为“胶水语言”。
Python 依靠其良好的扩展性,在一定程度上弥补了运行效率慢的缺点。
除了上面提到的各种优点,Python 也是有缺点的。
运行速度慢是解释型语言的通病,Python 也不例外。
Python 速度慢不仅仅是因为一边运行一边“翻译”源代码,还因为 Python 是高级语言,屏蔽了很多底层细节。这个代价也是很大的,Python 要多做很多工作,有些工作是很消耗资源的,比如管理内存。
Python 的运行速度几乎是最慢的,不但远远慢于 C/C++,还慢于 Java。
但是速度慢的缺点往往也不会带来什么大问题。首先是计算机的硬件速度运来越快,多花钱就可以堆出高性能的硬件,硬件性能的提升可以弥补软件性能的不足。
其次是有些应用场景可以容忍速度慢,比如网站,用户打开一个网页的大部分时间是在等待网络请求,而不是等待服务器执行网页程序。服务器花 1ms 执行程序,和花 20ms 执行程序,对用户来说是毫无感觉的,因为网络连接时间往往需要 500ms 甚至 2000ms。
不像编译型语言的源代码会被编译成可执行程序,Python 是直接运行源代码,因此对源代码加密比较困难。
开源是软件产业的大趋势,传统程序员需要转变观念。
甘肃省陇南外贸网站建设-双语网站制作-企业中英文网站优化推广-多语言集团网站定制开发