python是啥干啥用的 四个你需要知道的主要用途
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python是啥干啥用的 四个你需要知道的主要用途相关的知识,希望对你有一定的参考价值。
参考技术A Python是一种全栈的开发语言,所以你如果能学好Python,那么前端,后端,测试,大数据分析,爬虫等这些工作你都能胜任。python有四大主要应用:网络爬虫,web开发,人工智能以及自动化运维。1.网络爬虫
相比与其他静态编程语言,如java,c#,C++,python抓取网页文档的接口更简洁。python的urllib2包提供了较为完整的访问网页文档的API。抓取的网页通常需要处理,比如过滤html标签,提取文本等。python的beautifulsoap提供了简洁的文档处理功能,能用极短的代码完成大部分文档的处理。
2.web开发
python最大的特点就是简洁,使用python做网站开发,在代码的维护方面可以节省很大的精力。而且python还有很多优秀的web框架可以使用。
3.人工智能
人工智能的核心算法是完全依赖于C/C++的,因为是计算密集型。Python是这些库的API binding,使用Python是因为CPython的胶水语言特性,要开发一个其他语言到C/C++的跨语言接口,Python是最容易的,比其他语言的ffi门槛要低不少,尤其是使用Cython的时候,Python历史上也一直都是科学计算和数据分析的重要工具,有numpy的底子,用numpy这样的基础库既减少了开发工作量,也方便从业人员上手。
4.自动化运维
一个运维人员通常要管理上百、上千台服务器,运维工作也变的重复、繁杂。把运维工作自动化,python能够把运维人员从服务器的管理中解放出来,让运维工作变得简单、快速、准确.
PHP 的 serialize() 函数是干啥用的?
【中文标题】PHP 的 serialize() 函数是干啥用的?【英文标题】:What is PHP's serialize() function for?PHP 的 serialize() 函数是干什么用的? 【发布时间】:2010-11-13 21:57:58 【问题描述】:我刚刚了解了serialize()
和unserialize()
函数。这有什么用途?我知道人们将事物序列化以放入数据库。你能给我一些有用的例子吗?
我也看到 javascript 中的序列化代码,是一样的吗? javascript中的序列化字符串可以用phpunserialize()
反序列化吗?
【问题讨论】:
【参考方案1】:PHP 序列化允许您以文本形式保存数组或对象。将数组分配给 $_SESSION 之类的东西时,它允许 PHP 将其存储在文本文件中,然后再重新创建它。序列化像这样用于对象和变量。 (只要确保你事先声明了对象使用的类)
另一方面,Wordpress 将其用于非常相似的方法,将序列化的数组直接存储在数据库中。如果您保留一个键 => 值的数据库,由于数组的灵活性,这可能非常有益,您可以在 value 参数中存储任何内容。
这是链接(由第一位评论者提供):http://us3.php.net/serialize
【讨论】:
你刚才说你要以文本形式保存一个数组,这是错误的。您可以序列化任何类型的变量。你甚至可以序列化一个对象。当您反序列化一个对象时,您唯一需要考虑的是拥有您将反序列化的对象的声明 顺便说一句,在段落的末尾我最初说它用于对象和数组。【参考方案2】:我经常在数据库中看到序列化的数据存储,我真的不喜欢这样:
在 SQL 中处理这些数据真的很困难:你如何在序列化数据上编写条件?更难的是:你如何更新它?您是否真的编写了一个 PHP 脚本来获取每一行、反序列化、修改它们、重新序列化并将它们存储回 DB 中? :-( 在您想要将数据迁移到另一个软件的那一天,迁移数据需要做更多的工作(如果新软件不是用 PHP 编写的,那么工作量会更大,顺便说一句)不过,我承认这是一种存储未明确定义的数据的简单方法...而且我有时确实会使用它...
序列化的另一个用途是促进两个系统之间的数据交换:例如,通过某种 web 服务发送对象,要求它们以某种方式序列化。
如果两个系统都是 PHP,你可以设想使用serialize
/unserialize
。但是,在这里,如果其中一个系统不再是 PHP 怎么办?使用 JSON 或 SOAP 可能是更好的选择:一开始会有点困难,但可能是更长期的解决方案,因为这些格式在其他语言中也是已知的。
我使用 PHP 的 serialize
函数的一件事是将数据存储在缓存中(就像 APC 的用户缓存),在 PHP 应用程序中:您不能按原样存储对象:您必须序列化它们.由于缓存仅由一个应用程序使用,因此不必使用多种语言都知道的格式;所以,序列化是可以的......而且,要将数据存储在缓存中,你应该使用一个非常快速的序列化函数 - 序列化非常快^^
【讨论】:
很棒的评论帕斯卡!如果大家有兴趣,还有这个很棒的post 比较json_encode和serialize。【参考方案3】:我经常使用serialize
将重要信息存储在数据库中,这些信息不值得为其创建一个全新的字段,但将来可能会用到。
例如,如果用户填写了一个我只存储了其中几个元素的表单,但我想保留它们以备不时之需,我将序列化表单元素数组并将其存储在数据库。
【讨论】:
是的,这通常是我使用它的方式。特别是如果您有未知数量的 key=>val 对(具有未知名称),则很难构建一个好的数据库结构来处理它。 @Christian:看EAV模式。将这类数据规范化到数据库中一点也不难,实际上要灵活得多。 我开始为此使用 json。允许您以 更多 标准格式保存数据,而不是 php 序列化 @Nelson:很有趣,将更深入地研究 EAV 模式。谢谢你告诉我!【参考方案4】:当您想在 PHP 之外传递数据时使用序列化,例如传递给 Javascript。
是的,它通常可以按原样发送字符串、整数和字符串,但不能像数组这样更复杂的结构。阅读有关将 PHP 数组传递给 Javascript here 的更多信息。
您还可以将数据格式化为多种语言广泛支持的 JSON,但是在转换为它时会丢失 PHP 原生类型和您自己的类。阅读有关 JSON 和 PHP 的更多信息here。
【讨论】:
您开始回答序列化用于将 php 之外的数据传递给例如的信息。 js,但是如果你的目标不再是 php,那么保留原生 php 类型的目的是什么? 好评!没错,如果您的目标不再是 php,那么它可能不支持 PHP 本机类型。但是您的中间步骤(目标)可以是将数据存储在数据库中,然后在 PHP 中再次使用它。以上是关于python是啥干啥用的 四个你需要知道的主要用途的主要内容,如果未能解决你的问题,请参考以下文章