plc与python哪个好_python主要应用在那些领域

python主要应用在那些领域西门子新闻内容 查阅次数:5142 更新时间: 2019-12-29 10:34

当下全栈工程师的概念很火,而python是一种全栈的开发语言,你如果能学好python,那么前端,后端,测试,大数据分析,爬虫等这些工作你都能胜任。

python主要有以下五大主要应用:

网络爬虫

数据分析

人工智能

web开发

自动化运维

一、网络爬虫

网络爬虫又称网络蜘蛛,是指按照某种规则在网络上爬取所需内容的脚本程序。众所周知,每个网页通常包含其他网页的入口,网络爬虫则通过一个网址依次进入其他网址获取所需内容。

爬虫有什么用?

做为通用搜索引擎网页收集器。

做垂直搜索引擎。

科学研究:在线人类行为,在线社群演化,人类动力学研究,计量社会学,复杂网络,数据挖掘,等领域的实证研究都需要大量数据,网络爬虫是收集相关数据的利器。

爬虫是搜索引擎的第一步也是最容易的一步。

为什么选python?

python优势很多,总结两个要点:

1)抓取网页本身的接口

相比与其他静态编程语言,如java,c#,C++++,python抓取网页文档的接口更简洁;相比其他动态脚本语言,如perl,shell,python的urllib2包提供了较为完整的访问网页文档的ApI。

此外,抓取网页有时候需要模拟浏览器的行为,很多网站对于生硬的爬虫抓取都是封杀的。这是我们需要模拟user agent的行为构造合适的请求,譬如模拟用户登陆、模拟session/cookie的存储和设置。在python里都有非常优秀的第三方包帮你搞定,如Requests,mechanize

2)网页抓取后的处理

抓取的网页通常需要处理,比如过滤html标签,提取文本等。python的beautifulsoap提供了简洁的文档处理功能,能用极短的代码完成大部分文档的处理。

其实以上功能很多语言和工具都能做,但是用python能够干得最快,最干净。Life is short, u need python.

二、数据分析

一般我们用爬虫爬到了大量的数据之后,我们需要处理数据用来分析,不然爬虫白爬了,我们最终的目的就是分析数据,在这方面 关于数据分析的库也是非常的丰富的,各种图形分析图等 都可以做出来。也是非常的方便,其中诸如Seaborn这样的可视化库,能够仅仅使用一两行就对数据进行绘图,而利用pandas和numpy、scipy则可以简单地对大量数据进行筛选、回归等计算。而后续复杂计算中,对接机器学习相关算法,或者提供Web访问接口,或是实现远程调用接口,都非常简单。

三、人工智能

人工智能并不是什么新概念,其历史已经超过了半个世纪。在人工智能领域过去这几十年的发展中,传统的主流编程语言明明是 Lisp,而后起之秀也是像 prolog 这样的语言。但是当这一波人工智能真正开始流行起来时,人们发现,那些流行的框架和工具,要么是用 python 写的,比如 Theano,要么是 C++ 写的,但是 python 作为接口语言,比如 TensorFlow,Caffe,MxNet 等。仅有的非 python 框架 Torch,在 2017 年也抵不住压力,开发了 pyTorch。

四、web开发

很多人只知道Java、pHp可做web开发,但对于python也能做web开发却知之甚少。很多人可能不知道,python其实是和互联网一起长大的。作为动态语言,并且具有更高的抽象层次的 python 和 perl,很快就被开发者们发现更适合用于开发网站,并在早期互联网的兴起过程中发挥重要作用。

五、自动化运维

随着技术的进步、业务需求的快速增长,一个运维人员通常要管理上百、上千台服务器,运维工作也变的重复、繁杂。把运维工作自动化,能够把运维人员从服务器的管理中解放出来,让运维工作变得简单、快速、准确。

其他领域:

1. 游戏开发

你可以用pyGame来开发游戏,但这并不是最受欢迎的游戏引擎。你可以用它来开发业余爱好项目,但如果你对游戏开发很认真,建议不要选它。

我建议使用Unity的C#,这是最受欢迎的游戏引擎之一。它能让你为许多平台开发游戏,包括Mac、Windows、iOS和Android。

2. 桌面应用

你可以用python的Tkinter,但这并不是最热门的选择。Java,C#和C ++等语言似乎更受欢迎。

3.手机App

python语言虽然很万能,但用它来开发app还是显得有点不对路,因此用python开发的app应当是作为编码练习、或者自娱自乐所用,加上目前这方面的模块还不是特别成熟,bug比较多,总而言之,劝君莫轻入。

Linux驱动到底能不能在应用层开发驱动

中午跟比较要好的同事一块吃饭,同事刚从单片机开发转Linux开发没多久,目前负责给客户开发一个USB 设备驱动。他跟我抱怨,由于获取不到客户内核代码,因此每次客户那边内核代码发生了改变,自己的驱动程序也要跟着重新编译,太麻烦了。因此,我建议同事把驱动写到App里面。同事大惊,Linux能在应用层开发驱动?

答案是肯定的。在Linux系统中,对于总线类驱动,驱动框架都分为俩部分。一是总线控制器驱动,它负责使能总线传输数据的能力。二是设备驱动,它负责使能挂在总线上的设备。

以usb设备为例,usb host controller驱动使得Linux可以在自己及挂在自己身上的usb 设备之间传输数据。但是usb设备种类有千千万。驱动这些设备,都需要通过usb总线发送特定的数据给到usb设备。比如,我要初始化usb 串口设备,我应该发什么数据设置它的波特率呢?

相信大家已经明白了,总线控制器驱动及总线设备驱动的关系了,其实就是程序分层的思想。总线控制器驱动有了之后,程序员就可以调用她的接口,将自己要发送的数据发送到总线上的设备,这就是设备驱动了。那具体在内核空间调用还是在应用空间调用都是OK的。

笔者在实际工作过程中,有过在应用空间开发i2c设备驱动,安卓App开发usb 设备驱动程序的经验。

责任编辑  LK

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值