python 无头模式

1.1.1 Python来源(了解)

Python翻译成汉语是蟒蛇的意思,并且Pythonlogo也是两条缠绕在一起的蟒蛇的样子,然而Python语言和蟒蛇实际上并没有一毛钱关系。

Python语言是由荷兰程序员Guido van Rossum,江湖人称“龟叔”,独立开发完成初版的。“龟叔”曾供职于google,现任职于dropbox 。1989年圣诞节期间,在阿姆斯特丹,为了打发圣诞节的无趣,决心开发一个新的脚本解释语言,作为ABC语言的一种继承,然后他就这么做了,并实现了(大神的能力)。之所以选中Python作为该编程语言的名字,是因为他是一个叫Monty Python喜剧团体的爱好者,其本意并不是想选条蟒蛇。

1.1.2 Python语言的特点(熟悉)

① 简单易学、明确优雅、开发速度快

  • 简单易学:与CJava比,Python的学习成本和难度曲线不是低一点,更适合新手入门,自底向上的技术攀爬路线。先订个小目标爬个小山,然后再往更高的山峰前进。而不像CJAVA光语言学习本身,对于很多人来说就像珠穆朗玛峰一样高不可攀。
  • 明确优雅:Python的语法非常简洁,代码量少,非常容易编写,代码的测试、重构、维护等都非常容易。一个小小的脚本,用C可能需要1000行,用JAVA可能几百行,但是用Python往往只需要几十行!
  • 开发速度快:当前互联网企业的生命线是什么?产品开发速度!如果你的开发速度不够快,在你的产品推出之前别人家的产品已经上线了,你也就没有生存空间了,这里的真实例子数不胜数。那么,Python的开发速度说第二没人敢称第一!(不欢迎辩论_)

② 跨平台、可移植、可扩展、交互式、解释型、面向对象的动态语言

  • 跨平台:Python支持WindowsLinuxMAC os等主流操作系统。
  • 可移植:代码通常不需要多少改动就能移植到别的平台上使用。
  • 可扩展:Python语言本身由C语言编写而成的,你完全可以在Python中嵌入C,从而提高代码的运行速度和效率。你也可以使用C语言重写Python的任何模块,从根本上改写PythonPyPy就是这么干的。
  • 交互式:Python提供很好的人机交互界面,比如IDLEIPython。可以从终端输入执行代码并获得结果,互动的测试和调试代码片断。
  • 解释型:Python语言在执行过程中由解释器逐行分析,逐行运行并输出结果。
  • 面向对象:Python语言具备所有的面向对象特性和功能,支持基于类的程序开发。
  • 动态语言:在运行时可以改变其结构。例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。动态语言非常具有活力。

③ “内置电池”,大量的标准库和第三方库

Python为我们提供了非常完善的基础库,覆盖了系统、网络、文件、GUI、数据库、文本处理等方方面面,这些是随同解释器被默认安装的,各平台通用,你无需安装第三方支持就可以完成大多数工作,这一特点被形象地称作“内置电池(batteries included)”。

在程序员界,有一句话叫做“不要重复造轮子”。什么意思呢?就是说不要做重复的开发工作,如果对某个问题已经有开源的解决方案或者说第三方库,就不要自己去开发,直接用别人的就好。不要过分迷信自己的代码能力,要知道,能作为标准库被Python内置,必然在可靠性和算法效率上达到了目前最高水平,能被广泛使用的第三方库,必然也是经受了大量的应用考验。除非公司要求,不要自己去开发,请使用现成的库。那些造轮子的事情,就交给世界最顶尖的那一波程序员去干吧,没有极致的思维和数学能力,想创造好用的轮子是很难的。

④ 社区活跃,贡献者多,互帮互助

技术社区的存在就相当于程序员手中的指南针,没有指南针,很多时候,碰到了问题,就像无头的苍蝇只能到处乱飞,最终在茫茫的海洋中转晕致死。技术社区可以给我们对语言的学习和使用提供巨大的帮助,无论是前期的学习,还是日后的工作,只要有问题,技术社区的大牛都可以帮我们解决,有这些助力,可以帮我们更好地了解、学习和使用一门语言。技术社区同时还推动Python语言的发展方向,功能需求,促使公司企业更多的使用Python语言,招聘Python程序员。

然而,上面说的是国外。在国内,好像没有比较成熟,影响范围广的Python技术社区,还是说我见识浅薄不知道而已?据本人分析,有历史原因和Python流行过程中形成的习惯等因素,国外Python高手都喜欢用邮件列表、wiki等方式进行交流,而国内喜欢的论坛、bbs等没有形成规模,所以造成现在的状况。

因此,同学们,学好英语,去和世界范围的程序员交流吧!

⑤ 开源语言,发展动力巨大

Python基于C语言编写的,并且使用GPL开源协议,你可以免费获取它的源代码,进行学习、研究甚至改进。众人拾柴火焰高,有更多的人参与Python的开发,促使它更好的发展,被更多的应用,形成良性循环。Python为什么会越来越火就是因为它的开放性,自由性,聚起了人气,形成了社区,有很多人在其中做贡献,用的人越来越多,自然就提高了市场占有率,企业、公司、厂家就不得不使用Python,提供的Python程序员岗位就越来越多,这就是开源的力量。

这里附带跟大家说一个代码封闭的问题。Python写的源代码通常是不加密的,如果要发布你的Python程序,实际上就是发布源代码,这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码(也就是你在Windows上常见的xxx.exe文件)发布出去。要从机器码反推出C代码基本是不可能的,所以,凡是编译型的语言,都没有这个问题,而解释型的语言,则必须把源码发布出去。如果你不想让别人看到或抄袭你写的python代码怎么办?使用类似py2exe的包装工具,将python源码转换成一个类似于exe可执行文件的形式,但这个也不是绝对保险,只是增加了反编译的门槛和难度,对于有经验的人而言,一样可以获得你的源代码。

你可能要问,我要通过写代码编软件卖出去挣钱怎么办?少年!目前的互联网时代,靠卖软件授权的商业模式越来越少了,靠网站服务和移动应用卖服务的模式越来越多了,这种模式不需要把源码给别人。再说了,现在如火如荼的开源运动和互联网自由开放的精神是一致的,互联网上有无数非常优秀的像Linux生态圈一样的开源项目,我们千万不要高估自己写的代码真的有非常大的“商业价值”。在Python的世界,开源是王道,不要纠结你的代码被抄袭模仿,而是尽量提高自己的水平和能力,这才是立身之本。

1.1.3 Python的应用方向(了解)

① 常规软件开发
② 科学计算
③ 自动化运维
④ 云计算
⑤ WEB开发
⑥ 网络爬虫
⑦ 数据分析
⑧ 人工智能

1.1.4 Python之禅(了解)

最后,让我们以Python的官方格言,也就是俗称的Python之禅来结束对Python的介绍。在Python的IDLE或者交互式解释器中,输入import this,你就会看到下面的一段话:

  1. The Zen of Python, by Tim Peters
  2. Beautiful is better than ugly.
  3. Explicit is better than implicit.
  4. Simple is better than complex.
  5. Complex is better than complicated.
  6. Flat is better than nested.
  7. Sparse is better than dense.
  8. Readability counts.
  9. Special cases aren't special enough to break the rules.
  10. Although practicality beats purity.
  11. Errors should never pass silently.
  12. Unless explicitly silenced.
  13. In the face of ambiguity, refuse the temptation to guess.
  14. There should be one-- and preferably only one --obvious way to do it.
  15. Although that way may not be obvious at first unless you're Dutch.
  16. Now is better than never.
  17. Although never is often better than *right* now.
  18. If the implementation is hard to explain, it's a bad idea.
  19. If the implementation is easy to explain, it may be a good idea.
  20. Namespaces are one honking great idea -- let's do more of those!

翻译过来就是:

  1. 优美胜于丑陋(Python 以编写优美的代码为目标)
  2. 明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)
  3. 简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)
  4. 复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)
  5. 扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)
  6. 间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)
  7. 可读性很重要(优美的代码是可读的)
  8. 即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)
  9. 不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码)
  10. 当存在多种可能,不要尝试去猜测而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)
  11. 虽然这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido )
  12. 做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)
  13. 如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)
  14. 命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)

往后我们将会讲解到:

  • 第1章 Python环境搭建
  • Python介绍
  • 编译器与解释器
  • Python环境搭建
  • pip的介绍和使用
  • 代码编译器
  • 第2章 Python基础
  • 基础语法
  • 变量与常量
  • 输入与输出
  • 运算符
  • 第3章 数据类型
  • 数据类型
  • 数字类型
  • 布尔类型
  • 列表
  • 元祖
  • 字典
  • bytes
  • 集合
  • 第4章 Python流程控制
  • 顺序执行
  • 条件判断
  • 循环控制
  • 第5章 Python函数
  • range函数
  • 匿名函数
  • 推导式
  • 迭代器
  • 生成器
  • 装饰器
  • 内置函数
  • 第6章 Python文件读写
  • 文件类型
  • 文件的基础操作
  • 文件对象操作
  • 第7章 面向对象编程
  • 类和实例
  • 封装、继承和多态
  • 成员保护和访问限制
  • 特殊成员和魔法方法

每周更三次,记得关注小编~

(0)

相关推荐

  • Python解释器分为哪几类?

    众所周知,Python是一门解释器语言,代码想要运行,必须通过解释器来执行;而且Python拥有多种解释器,每个解释器有不同的特点,接下来我们一起来了解一下Python解释器的分类及安装,希望对你们有 ...

  • 你真的了解Python吗?这些必须知道

    虽然大家都知道Python是一门编程语言,但很多人对它了解的并不是很透彻,接下来小编通过这篇文章为大家介绍一下,希望对你有所帮助. 什么是Python? Python是一种解释型.面向对象.动态数据类 ...

  • Python是什么?Python入门!

    现如今,Python已经成为当下非常热门的编程语言,反超众多编程语言前辈,位居四大编程语言之一,可以应用在众多领域,因此越来越多的人都加入到Python学习大军,那么Python是什么?为什么Pyth ...

  • 编译型语言和解释型语言的区别

    我们编写的源代码是人类语言,我们自己能够轻松理解:但是对于计算机硬件(CPU),源代码就是天书,根本无法执行,计算机只能识别某些特定的二进制指令,在程序真正运行之前必须将源代码转换成二进制指令. 所谓 ...

  • Python入门难吗?30年前的编程语言,为什么现在这么火?

    https://m.toutiao.com/is/dhR6cmp/?=流水的语言 开发圈内流传着这么一句话"流水的语言,铁打的 Python",虽然诞生于80年代末.90年代初的 ...

  • vscode 的python 交互模式

    前提安装了vscode的插件, 本地安装了python程序,并且pip 安装ipykernel black magic 一切开始于#%% shift-enter 就可以方便的输出运行结果 输入os.l ...

  • Selenium+python自动化83-chrome手机wap模式

    一.前言 这里是群里(QQ群:226296743)风神出60大洋悬赏的问题,学会这篇就是赚了60大洋了! 我的环境: - chrome 62 - chromedriver 2.33 二.遇到问题 1. ...

  • selenium+python自动化85-Chrome静默模式(headless)

    前言 selenium+phantomjs可以打开无界面的浏览器,实现静默模式启动浏览器完成自动化测试,这个模式是极好的,不需要占用电脑的屏幕. but...,phantomjs这个坑还是比较多的,并 ...

  • appium+python自动化44-appium命令行模式

    前言 appium desktop有个客户端版本,每次运行脚本的时候都要去双击启动才能运行,很显然不太方便,影响效率.那么有没什么办法不启动桌面程序就能运行呢,比如cmd命令行执行? 环境: appi ...

  • 【python selenium的web自动化】- PageObject模式解析及案例

    https://www.cnblogs.com/miki-peng/category/1942527.html PO模式 Page Object(简称PO)模式,是Selenium实战中最为流行,并且 ...

  • WTF Python: 开启你的懵逼模式

    What the f*ck Python? Python很流行很易学,但有时,Python代码片段的结果可能让小白们直接懵逼,现在大邓跟你一起开启懵逼模式 wtf-1 开胃菜hash some_dic ...

  • Python自动化测试怎么学?看完这个!不做无头苍蝇

    前言 很多粉丝私信我,叫我出一期完整且系统的Python自动化测试全栈学习路线.历时半个月,我给大家整理了一套完整的Python自动化测试学习路线,跟着学完,保证能够学会!对自学的朋友能有很大的帮助! ...

  • python面试题-如"上海 深圳 深圳 上海",要求输入一个匹配模式,比如: aabb,判断是否符合

    面试题 判断一个字符串的构成是词+空格的组合,如"上海 深圳 深圳 上海",要求输入一个匹配模式, 比如aabb,来判断该字符串是否符合该模式 1.pattern="ab ...

  • Python函数的几种常用模式

    发现pycharm的小用法 这种调用方式称为位置实参,按照调用顺序来传入参数 这个是对上面例子更一般的演示 关键字实参调用法 这种叫做任意实参,如果在调用函数是不知道将来使用人要传多少参数时用这个,组 ...