Python简介

Python简介

编程语言

编程语言(programming language)可以认为是一种计算机和人都能识别的语言。编程语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。

计算机编程语言的分类

机器语言

机器语言是指机器能直接识别的程序语言或指令代码(它们无需经过“翻译”,即每一操作码在计算机内部都有相应的电路来完成它)或指不经翻译即可为机器直接理解和接受的程序语言或指令代码。机器语言使用绝对地址和绝对操作码不同的计算机都有各自的机器语言,即指令系统。从使用的角度看,机器语言是最低级的语言。(来源:百度百科)

汇编语言

汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。(来源:百度百科)

高级语言

高级语言(High-level programming language)是一种独立于机器,面向过程或对象的语言。高级语言是参照数学语言而设计的近似于日常会话的语言。高级语言相对低级语言有较高的可读性,更易理解。由于早期计算机行业的发展主要在美国,因此一般的高级语言都是以英语为蓝本。(来源:百度百科)

高级语言的分类

高级语言的分类方法有很多,我们在这里主要讨论其中的一种,即编译型与解释型语言。更为详尽的分类及编程语言的例子参见这篇文章。

编译型语言

常见的编译型语言包括Rust、C++、Java、C、C#、Objective-C、Visual Basic、Fortran等。
编译是指在源程序(你自己写的代码文件)执行之前,就将源程序中的源代码翻译为汇编语言,然后再根据硬件环境被变成符合运行需要的机器语言的目标文件
通过编译的方式,再次使用程序比较方便、效率较高,而且依据不同的编译配置,几乎可以适用于所有平台,包括硬件及嵌入式开发,这是编译型语言的优点。但是如果应用程序需要修改,就必须先修改源代码,再重新编译生成新的目标文件才能执行,只有目标文件而没有源代码,几乎是没法修改的,而且编译好的程序在平台上的适用范围也大大缩小。
因此,大多数软件产品都是编译后发行给用户的,不仅便于直接运行,同时又使他人难于弄清程序的源代码。

解释型语言

解释型语言包括Python、JavaScript、Ruby、Perl、Tcl、VBScript、Lua、Erlang、F#等。
解释是指源程序并不在执行前被翻译,而是通过一个叫翻译器的程序在程序执行过程中产生易于执行的中间代码(即不产生机器语言的目标文件)
解释器的任务是逐一(每条语句只有在执行才被翻译)将源程序的语句解释成可执行的机器指令,不需要将源程序翻译成目标代码后再执行。这种中间代码与机器代码是不同的,中间代码的解释是由解释器支持的,不能直接使用硬件。一般地来说,如果你听别人说到动态语言,大多都是指解释型语言。
由于需要边解释边运行程序,所以解释型语言通常有执行效率低的问题;而且解释器的体积相对单片机来说比较庞大,所以硬件开发是解释型语言难以胜任的工作;但是,解释型语言因为有解释器作为“中间人”,所以它们一般可以直接运行在几乎所有操作系统平台上而无需先进行编译;而且代码相对简洁,当语句出现语法错误时,可以立即引起程序员注意,使程序员在程序开发期间就能进行校正。

Python

Python综述

Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆(Guido van Rossum)于1990年代初设计,作为一门叫做ABC语言的替代品。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言。随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。自20世纪90年代初Python语言诞生至今,它已被逐渐广泛应用于系统管理任务的处理、Web编程、大数据处理和人工智能。2001年,Python软件基金会(PSF)成立,这是一个专为拥有Python相关知识产权而创建的非营利组织。(来源:百度百科)

Python优缺点

优点

  1. 简洁:Python是一种代表简单主义思想的语言。
  2. 易学:因为Python简洁(指程序的可读性以及实现特定功能的难易程度)的风格,Python极其容易上手。
  3. 易读、易维护:同样因为简洁,Python代码易于阅读,阅读一个良好的Python程序就感觉像是在读英语一样,它使你能够专注于解决问题而不是去搞明白语言本身,所以使你更容易维护你的代码。
  4. 可移植性:由于它的开源本质,Python已经被移植在许多平台上(经过略微改动使它能够工作在不同平台上)。
  5. 用途广泛:因为简洁与易读性,Python在多个领域都有重要应用。
  6. 免费、开源:Python是FLOSS(自由/开放源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。
  7. 高层语言:用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。
  8. 可扩展性、可扩充性、可嵌入性:如果需要一段关键代码运行得更快或者希望某些算法不公开,可以部分程序用各种其它语言编写,然后在Python程序中使用它们。因此Python也被称作胶水语言。在操控硬件的场合使用C++或Rust,在快速开发时候使用Python是一个不错的选择。
  9. 丰富的库:Python标准库确实很庞大。它可以帮助处理各种工作。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多其他高质量的第三方库,它们由非Python官方人员或组织编写。
  10. 做科学计算优点多:说起科学计算,首先会被提到的可能是MATLAB。除了MATLAB的一些专业性很强的工具箱还无法被替代之外,MATLAB的大部分常用功能都可以在Python世界中找到相应的扩展库。和MATLAB相比,用Python做科学计算有如下优点:
    1. MATLAB是一款商用软件,并且价格不菲。而Python完全免费,众多开源的科学计算库都提供了Python的调用接口。用户可以在任何计算机上免费安装Python及其绝大多数扩展库。
    2. 与MATLAB相比,Python是一门更易学、更严谨的程序设计语言。它能让用户编写出更易读、易维护的代码。
    3. MATLAB主要专注于工程和科学计算。然而即使在计算领域,也经常会遇到文件管理、界面设计、网络通信等各种需求。而Python有着丰富的扩展库,可以轻易完成各种高级任务,开发者可以用Python实现完整应用程序所需的各种功能。

缺点

  1. 单行语句和命令行输出问题:很多时候不能将程序连写成一行。而Perl就无此限制,可以较为方便的在shell下完成简单程序,不需要如Python一样,必须将程序写入一个.py文件。
  2. 运行速度慢:这里是指与C和C++相比。Python开发人员尽量避开不成熟或者不重要的优化。一些针对非重要部位的加快运行速度的补丁通常不会被合并到Python内。所以很多人认为Python很慢;不过,根据巴莱多定律,大多数程序对速度要求不高。在某些对运行速度要求很高的情况,Python设计师倾向于使用JIT技术,或者用使用C/C++语言改写这部分程序。可用的JIT技术是PyPy。

Python之禅

在Python交互式界面(这个以后再讲)中输入“import this”并回车,你会看到一些有意思的东西,这些东西是Python设计者和程序员们必须秉持的一个理念。这里直接将它粘上来。

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

它们的翻译及理解如下:

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

我们可以去哪里学习Python?

这里给出几个网站我自己常用的网站。

  1. 菜鸟教程
  2. 廖雪峰的官方网站
  3. Microsoft Docs
  4. Python官网

内容提要

  1. 编程语言的概念及分类(了解)
  2. 高级语言的分类及区别(理解)
  3. Python的概观(了解)
  4. Python优缺点(了解)
  5. Python之禅(理解)
  6. 常用学习网站(了解)

点此返回笔记目录。

你可能感兴趣的:(#,Python基础笔记,python)