Why python?

那些最好的程序员不是为了得到更高的薪水或者得到公众的仰慕而编程,他们只是觉得这是一件有趣的事情。

—— Linux 之父 Linux Torvalds

作为一个使用主义的学习者,最关心的问题一定是“我为什么要选择python,学会之后我可以用来做什么?”

首先,对于初学者来说,比起其他编程语言,python更容易上手。

python的设计哲学是优雅、明确、简单。在官方的The Zen of Python(《Python之禅》)

中,有一句话:There should be one-and preferably only -obvious way to do it.

python追求的是找到最好的解决方案。相比之下,其他语言追求的是多种解决方案。

如果你试着读一段写的不错的python代码,会发现像是在读英语一样。这也是python的最大优点,它使你能够专注于解决问题而不是去搞明白语言本身

其次,python功能强大,很多你本来应该操心的事情,python都替你考虑到了。当你用python语言编写程序的时候,你不需要考虑如何管理你的程序使用的内存之类的底层细节。并且python有恒丰富的库,其中有官方的,也有第三方开发的,你想做的功能模块很有可能别人已经写好了,你只需要调用,不需要重新发明轮子。这就像是拥有了智能手机,可能任意安装需要的APP。

这幅漫画形容了python的库有多强大,倒入一个反重力库就可以飞起来了。

第三,python能做的事情很多。

在职场中,使用python工作的主要是这样的几类人:

  • 网站后端程序员:使用python搭建网站、后台服务会比较容易维护,当需要增加新功能,用python可以比较容易的实现。不少知名网站都是用了python开发,比如:

  • 自动化运维:越来越多的运维开始倾向于自动化,批量处理大量的运维任务。python在系统管理上的优势在于强大的开发能力和完整的工具链。
  • 数据分析师:python能快速开发的特性可以让你迅速验证你的想法,而不是把时间浪费咋程序本身上,并且有丰富的第三方库的支持,也能帮你节省时间。
  • 游戏开发者:一般是作为游戏脚本化内嵌在游戏中,这样做的好处是你可以利用游戏引擎的高性能,又可以受益于脚本化开发的优点。只需要修改脚本内容就可以调整游戏,不需要重新编译游戏,特方便。
  • 自动化测试:对于测试来说,需要掌握Script的特性,会在设计脚本中有更好的效果。python是目前比较流行的Script。

如果你是一名业余开发者,只要想在资源少的情况下快速做出自己想要的东西、自动化的解决生活中的问题,那么python可以帮你做到这几类事情:

  • 网站开发

借助功能丰富的框架django,flask,丰富的设计模板bootstrap,你可以快速搭建自己的网站,还可以做到移动端自适应。

  • 用爬虫爬取或处理大量信息
  • 当你需要获取大量数据或是批量处理数据的时候,python爬虫可以快速做到这些,从而节省你的重复劳动时间。比如:微博私信机器人、批量下载美剧、运行投资策略、刷折扣机票、爬合适房源、系统管理员的脚本任务等等。

  • 在包装其他语言的程序
  • python又叫做胶水语言,因为它可以用混合编译的方式使用C/C++/JAVA等等语言的库。另外,树莓派作为微型电脑也是用了python作为主要开发语言。

最后没付送一张选择编程语言的小测试,你可以根据你需要,选择学习哪种语言。

为什么选择python?的更多相关文章

  1. 人生苦短,我用python,为什么选择python,python简介

    认识 Python 人生苦短,我用 Python —— Life is short, you need Python  目标 Python 的起源 为什么要用 Python? Python 的特点 ...

  2. 为什么选择Python

    经常会有同学问我为什么选择Python.我很喜欢这门语言,因为它的简洁灵活,易学,易读,可移植并且功能强大. 高级 可以说,每一代编程语言的产生,我们都会达到一个新的高度.从汇编语言,到C Pasca ...

  3. 人工智能为什么选择Python语言?

    作为新手,在面对广泛应用于企业级应用开发的 Java.游戏客户端开发的 C++.嵌入式开发的 C.人工智能领域的 Python 等数百种编程语言时,你会如何选择自己的第一门编程语言? 作者 | JAC ...

  4. 1、量化投资—为什么选择Python?

    Python在量化领域的现状 就跟Java在web领域无可撼动的地位一样,Python也已经在金融量化投资领域占据了重要位置,从各个业务链条都能找到相应的框架实现. 在量化投资(证券和比特币)开源项目 ...

  5. python学习心得第一章

    初始python 1什么是程序 计算机程序是一组执行某种动作的的指令.和那些电路.芯片.显卡.硬盘等不同,它不是计算机本身可以触摸的部分,而是隐藏在背后运行在硬件上面的东西.程序就是一系列告诉没有知觉 ...

  6. python脚本实现集群检测和管理

    python脚本实现集群检测和管理 场景是这样的:一个生产机房,会有很多的测试机器和生产机器(也就是30台左右吧),由于管理较为混乱导致了哪台机器有人用.哪台机器没人用都不清楚,从而产生了一个想法-- ...

  7. python基础入门

    Python简介 python是吉多·范罗苏姆发明的一种面向对象的脚本语言,可能有些人不知道面向对象和脚本具体是什么意思,但是对于一个初学者来说,现在并不需要明白.大家都知道,当下全栈工程师的概念很火 ...

  8. Python应用与实践【转】

    转自:http://www.cnblogs.com/skynet/archive/2013/05/06/3063245.html 目录 1.      Python是什么? 1.1.      Pyt ...

  9. 人们对Python在企业级开发中的10大误解

    From : 人们对Python在企业级开发中的10大误解 在PayPal的编程文化中存在着大量的语言多元化.除了长期流行的C++和Java,越来越多的团队选择JavaScript和Scala,Bra ...

随机推荐

  1. Jupyter Notebook自动补全

    大多数程序员都非常熟悉不同的自动补全工具.然而,我注意到许多数据科学家还没有使用它.如果你是他们中的一员,是时候开始使用这个提高效率的工具了 什么是自动补全? 它是你的编程环境提供的一种功能,用于完成 ...

  2. Keras 多层感知机 多类别的 softmax 分类模型代码

    Multilayer Perceptron (MLP) for multi-class softmax classification: from keras.models import Sequent ...

  3. 软件架构的演进:单体、垂直、SOA、微服务

    软件架构演进 软件架构的发展经历了从单体结构.垂直架构.SOA架构到微服务架构的过程,以下为具体分类: 1.1.1      单体架构 特点: 1.所有的功能集成在一个项目工程中. 2.所有的功能打一 ...

  4. [vijos1725&bzoj2875]随机数生成器<矩阵乘法&快速幂&快速乘>

    题目链接:https://vijos.org/p/1725 http://www.lydsy.com/JudgeOnline/problem.php?id=2875 这题是前几年的noi的题,时间比较 ...

  5. 【python系统学习12】函数

    函数 函数是一堆组织好的.可重复利用的.用来实现某一功能的代码. python中的input().print().type().bool().len()等都是函数.且是python的内置函数. 我们也 ...

  6. A. Remainder Codeforces Round #560 (Div. 3)

    A. Remainder Codeforces Round #560 (Div. 3) You are given a huge decimal number consisting of nn dig ...

  7. vagrant 入门案例 - 快速创建 Centos7

    中文文档:http://tangbaoping.github.io/vagrant_doc_zh/v2/ 参考: https://blog.csdn.net/yjk13703623757/articl ...

  8. 携程首页--使用flex布局实现

    携程首页 flex解决了float和postion的遗留问题,对移动端比较友好. 需要水平排列的元素就为其父元素设置display:flex,并为子元素添加flex的值(比例) 布局时可以先从大的页面 ...

  9. django-rest-framework权限验证

    django-rest-framework权限验证 在项目根目录下新建utils的文件 新建permissions.py from rest_framework.permissions import ...

  10. vue-shop项目第二天(用于个人学习的记录)

    vue-shop项目第二天 1.实现路由导航守卫功能. router.beforeEach((to, from, next) => { // to 将要访问的路径 from 代表从哪个路径跳转而 ...