一、编程语言
文章中的一些图片使用的是我另外一个博客
编程语言是一种用于编写计算机程序的形式化语言,它由一组规则和符号组成,用于定义计算机程序的结构和行为。编程语言允许程序员以特定的方式来描述计算机程序的逻辑和操作,以便计算机能够理解和执行这些指令。
1.1 编程语言发展
编程语言的发展是一个长期的、不断演进的过程,涉及到技术、需求、社会和经济等多方面的因素。
-
机器语言和汇编语言时代(1940s-1950s): 最早的计算机程序是用机器语言编写的,直接操作二进制指令。随着汇编语言的出现,程序员可以使用更容易理解的符号来表示机器指令。
-
高级编程语言的兴起(1950s-1960s): 高级编程语言的出现使得程序更易读、易写,并提高了程序员的生产力。Fortran、COBOL 和 Lisp等语言在这一时期应运而生。
-
结构化编程和面向对象编程(1960s-1980s): 结构化编程理念提倡使用模块化和清晰的结构来组织代码,使得代码更易维护。同时,面向对象编程(OOP)引入了类和对象的概念,提供了一种更抽象和灵活的编程方式。C、C++ 和 Smalltalk 是这个时期的代表性语言。
-
面向对象语言的普及和互联网时代(1990s-2000s): Java 和 C#等面向对象语言的普及推动了企业级应用的开发。随着互联网的兴起,脚本语言如JavaScript变得重要,用于在浏览器中实现动态交互。
-
多范式语言和函数式编程(2000s-至今): 现代编程语言越来越支持多种编程范式,如函数式编程、并发编程等。Python、Ruby、Scala、Kotlin等语言在这方面取得了很大的成功。
-
开源和社区驱动发展(2000s-至今): 许多编程语言开始转向开源模型,允许全球开发者参与共同的语言发展和改进。这种模式加速了语言的演进,使得社区的反馈和贡献成为推动语言发展的重要力量。
-
人工智能和数据科学(2010s-至今): Python由于其简洁、易学以及在数据科学和人工智能领域的广泛应用而变得异常流行。同时,新兴的语言如Rust、Go、Swift等也在特定领域崭露头角。
-
领域特定语言(DSL)(2010s-至今): 随着需求的多样化,越来越多的领域特定语言(DSL)被开发,用于解决特定领域的问题。这种语言通常专注于某一特定任务或领域,提供更高层次的抽象。
1.2 编程语言分类
在这里我们聊一下机器语言、汇编语言、高级编程语言的分类以及它们之间的优缺点。
1.2.1 机器语言
机器语言是一种计算机可以直接执行的语言,它是由二进制代码组成的,用来指示计算机执行特定的操作。在计算机内部,所有的操作都是以机器语言的形式进行的。每条机器语言指令都对应着计算机内部的一项操作,比如加法、减法、加载数据等。
机器语言是计算机能够理解和执行的最基本的语言形式,也是其他高级语言的底层基础。在机器语言中,指令通常由操作码(Opcode)和操作数(Operand)组成。操作码指示要执行的操作,而操作数则是操作码所需的数据或者操作的地址。
由于机器语言是以二进制形式表示的,因此它对人类来说非常难以理解和编写。为了简化程序员的工作,发展出了高级语言,它们使用更加人类友好的语法和结构,并且经过编译或解释成机器语言,以便计算机能够执行。
1.2.2 汇编语言
汇编语言是一种低级别的计算机编程语言,它使用助记符(Mnemonics)来代表计算机的指令集。与机器语言相比,汇编语言更接近人类可读的形式,但仍然直接映射到机器语言的指令。汇编语言的每条指令都对应着一条机器语言指令,因此它也是一种直接操作计算机硬件的语言。
编写汇编语言程序通常需要对计算机硬件和指令集有一定的了解,因为它直接操作底层硬件。汇编语言程序经过汇编器(Assembler)编译成机器语言,然后可以在计算机上执行。
1.2.3 高级编程语言
高级编程语言是一种计算机编程语言,它使用更加人类友好的语法和结构来编写程序。高级编程语言与底层的机器语言和汇编语言相比,更加抽象,能够隐藏底层硬件细节,并且更易于理解和编写。
一些常见的高级编程语言包括C、C++、Java、Python、Ruby、C#等。每种高级编程语言都有其特定的语法和语义规则,适用于不同的应用场景和需求。这么多高级编程语言,我们可以使用一些分类标准用于区分。
1、面向对象/面向过程
在面向对象编程中对象是基本概念,它包含数据(属性)和方法(操作数据的函数)。
在面向过程编程中以过程为中心,程序被视为一系列执行的步骤或函数。
它们的区分如下所示:
- 抽象层次: 面向对象更强调数据和操作的封装,以对象为中心;而面向过程更关注解决问题的步骤,以过程为中心。
- 代码重用: 面向对象通过继承和多态提供更好的代码重用机制,而面向过程通常需要显式地复制粘贴代码。
- 可扩展性: 面向对象更易于扩展,通过添加新的类和对象来增加功能;而面向过程可能需要修改现有的代码。
- 复杂性: 面向对象的代码通常更抽象,可能更复杂,但对于大型项目和长期维护来说更有优势。 注意:选择面向对象或面向过程编程通常取决于项目的需求、规模和开发者的经验及个人偏好。在实际应用中,很多编程语言允许同时使用这两种编程风格。
注意:这里只是简单区分面向过程和面向对象,后续教程会详细讲解。\color{red} {注意:这里只是简单区分面向过程和面向对象,后续教程会详细讲解。} 注意:这里只是简单区分面向过程和面向对象,后续教程会详细讲解。
静态语言/动态语言
静态语言和动态语言是两种不同类型的编程语言,它们在编程语言的类型检查和执行时机上有所不同:
静态语言在编译时检查类型,更加严格和高效,但编写起来可能相对繁琐;而动态语言在运行时检查类型,更加灵活和简洁,但可能牺牲一些性能。
强类型语言/弱类型语言
强类型语言和弱类型语言是两种不同的类型系统,它们在变量和表达式的类型处理上有所不同。
补充:这里来说明一下显示转换和隐式转换的区别,例如现在我需要将某个对象给转换\color{blue}{补充:这里来说明一下显示转换和隐式转换的区别,例如现在我需要将某个对象给转换}补充:这里来说明一下显示转换和隐式转换的区别,例如现在我需要将某个对象给转换 为String那么我们可以这么做:Stringstr1=(String)object2,这便是显式转换,;a=\color{blue}{为String那么我们可以这么做:String str1 = (String) object2,这便是显式转换,;a =}为String那么我们可以这么做:Stringstr1=(String)object2,这便是显式转换,;a= 10+10.23,10原本是整形而10.23是符点数,那么它们在相加时会自动转换类型无需我\color{blue}{ 10 + 10.23,10原本是整形而10.23是符点数,那么它们在相加时会自动转换类型无需我}10+10.23,10原本是整形而10.23是符点数,那么它们在相加时会自动转换类型无需我 们人为操作。\color{blue}{们人为操作。}们人为操作。
编译型/解释型
编译型语言和解释型语言是两种不同的编程语言执行方式。它们在代码执行过程中的实现方式和执行效率上有所不同。
编程语言的分类标准还有很多,这里就不过多叙述。
二、Python
Python是一门面向对象的高级编程语言,它具有如下所示的特点:
-
简洁易读: Python 的语法设计简洁明了,采用了清晰的代码结构和缩进风格,使得代码易于阅读和理解。这种简洁性有助于提高代码的可维护性和可读性。
-
动态类型: Python 是一种动态类型语言,变量的类型在运行时确定,而不是在编译时。这种灵活性使得 Python 代码编写更为简单,并且具有更高的表达力。
-
面向对象: Python 支持面向对象编程范式,包括类、继承、封装和多态等概念。这使得 Python 可以更好地组织和管理复杂的代码结构,并且提供了更高的代码重用性和可维护性。
-
解释型语言: Python 是解释型语言,代码在运行时逐行解释执行,而不是事先编译成机器码。这种特性使得 Python 具有更快的开发和测试周期,同时也提供了更大的灵活性。
-
跨平台性: Python 可以在多个平台上运行,包括 Windows、Linux、macOS 等。这种跨平台性使得开发人员可以轻松地在不同操作系统上部署他们的代码。
-
丰富的标准库: Python 内置了丰富的标准库,包含了大量的模块和功能,用于处理各种任务,例如文件操作、网络通信、数据处理等。这些标准库使得开发人员能够更轻松地解决问题,提高生产力。
-
可扩展性: Python 具有良好的扩展性,允许开发人员编写自己的模块和库,并且可以轻松地与其他语言进行集成,例如 C/C++、Java 等。
-
大型社区支持: Python 拥有庞大的社区支持,有着活跃的开发者社区和丰富的资源,包括文档、库、框架等。这种社区支持使得开发人员能够更轻松地分享经验、解决问题,并且加速了 Python 生态系统的发展。
补充:Python的官网地址是WelcometoPython.org。\color{blue}{补充:Python的官网地址是Welcome to Python.org 。}补充:Python的官网地址是WelcometoPython.org。
2.1 Python发展
- 创始阶段(1980s - 1989): Guido van Rossum 在阿姆斯特丹 CWI(荷兰计算机科学研究中心)工作时开始了 Python 的发展。最初的灵感来自于 ABC 语言,Python 早期版本的目标是创建一种简单、易读且功能强大的编程语言。
Python的故事:
Python 的发明故事始于 1980 年代末和 1990 年代初,由荷兰程序员 Guido van Rossum 在阿姆斯特丹 CWI(荷兰计算机科学研究中心)工作时开发。
故事可以追溯到 Guido van Rossum 的工作需要以及对现有编程语言的不满所产生的灵感。在编写代码的过程中,Guido van Rossum发现了使用 ABC(一种教学语言)的愉快经验,ABC 语言是一种简单易学的语言,适合教学和快速原型开发,但它的实用性受到了限制。于是,他决定设计一种新的编程语言,既保留 ABC 语言的易学性,又具有更广泛的应用性。
在 1989 年圣诞期间,Guido van Rossum开始着手设计 Python。他的设计理念包括:优雅、明确、简单,同时还要有强大的功能。他希望 Python 具有良好的可读性,使得程序员可以更加轻松地编写和理解代码。
Python 的名字来源于 Guido van Rossum 非常喜爱的电视剧《蒙蒂·派森的飞行马戏团》(Monty Python’s Flying Circus)。在选择名字时,他想要一个独特且有趣的名字,于是便将其命名为 Python,这也表明了他对编程语言设计的幽默和非传统的态度。
-
1991 年,Python 的第一个版本(0.9.0)正式发布,这标志着 Python 的诞生。随着时间的推移,Python 不断发展壮大,成为一种广泛应用的编程语言,在软件开发、科学计算、数据分析、人工智能等领域都有着重要的地位。
-
Python 0.9.0(1991): 第一个公开发布的 Python 版本是 0.9.0,发布于 1991 年的 2 月。这个版本包含了诸如类、异常处理、函数和模块等基本特性。
-
Python 1.0(1994): Python 1.0 版本于 1994 年发布,添加了对模块化编程的支持,并引入了列表推导式等新特性。
-
Python 2.x系列(2000 - 2008): Python 2.x 系列是 Python 的主要版本分支,于 2000 年发布。Python 2.0 引入了垃圾回收器和 Unicode 支持等新特性。2.x 系列在 2008 年发布的 2.6 版本是最后一个 2.x 系列的主要版本。
-
Python 3.x系列(2008至今): Python 3.x 系列于 2008 年发布,旨在解决 Python 2.x 系列中的一些设计缺陷和不一致性。Python 3.0 引入了一系列不兼容的语言变化,以提高语言的一致性和简洁性。然而,这也导致了一些项目仍然停留在 Python 2.x 系列,因为代码不兼容。
-
社区和生态系统的发展: 随着时间的推移,Python 社区不断壮大,形成了一个活跃的开发者社区和丰富的资源生态系统。许多第三方库、框架和工具的出现,进一步推动了 Python 的发展和应用范围的扩大。
-
Python 的应用领域扩展: Python 的灵活性和易用性使其在各个领域都有广泛的应用,包括 Web 开发、数据科学、人工智能、机器学习、科学计算、自动化脚本等。
-
Python 的持续发展和更新: Python 的发展并未止步于 3.x 系列的发布,持续有新的版本发布以改进和增强语言特性,同时保持对旧版本的支持和维护。
2.2 Python解释器
通过上述我们知道Python是一门解释型语言,它的代码执行需要依靠解释器。Python解释负责将我们所写的 Python 源代码翻译成计算机可以理解和执行的机器代码。Python 有多个解释器,其中两个主要的是 CPython 和 Jython。
2.2.1 CPython
CPython 是官方的、默认的 Python 解释器,由 Guido van Rossum 编写并维护。 它是使用 C 语言开发的,因此被称为 CPython。 CPython 通过将 Python 代码翻译成字节码,然后通过 Python 虚拟机执行这些字节码。 大多数 Python 应用和库都是为 CPython 编写的,因此它是最广泛使用的 Python 解释器。
2.2.2 Jython
Jython 是一个在 Java 平台上运行的 Python 解释器。 它允许 Python 代码和 Java 代码互操作,可以直接调用 Java 类和使用 Java 库。 Jython 也会将 Python 代码编译成 Java 字节码并在 Java 虚拟机上执行。 当然除了上述两种解释器以外还有其它解释器例如IronPython(在.NET平台上运行)、PyPy(一个Jsut-In-Time编译器,旨在提高性能)等。
2.3 Python环境安装
对于Python环境的安装我们通过取官网下载对应的安装包安装即可。
首先我们通过网址www.python.org/downloads/w…进入到Python下载页面(这里以Windows系统为例,其它系统可以在官网选择即可\color{red}这里以Windows系统为例,其它系统可以在官网选择即可这里以Windows系统为例,其它系统可以在官网选择即可)。
在这里我们选择Python3.8为例子,选择对应的版本点击下载。
下载好安装包以后我们单击或双击该安装包程序。
接下来我们将进入Python的安装界面。 选择详细安装以后就会进入下一个安装界面,下个界面继续点击next按钮进入下一步。
点击next以后就会继续进入下一个界面,在该界面主要用于设置环境安装路径(最好不要装在系统盘,并且路径最好使用英文)。
修改好路径以后点击install按钮,然后等待软件的安装完成。
到这里我们已经完成了Python的安装,下面我们就可以通过命令行来检查一下。
首先我们同时按下键盘的windows键和R键然后在输入框输入cmd。
接着就会进入cmd命令行了。 我们在命令行输入关键词python就可以进入Python编程界面,当然后续教程中我们还是会使用其它编码工具去开发Python项目。
关于Python更多的内容可以关注《Python从入门到精通》,该专栏主要用于分享Python学习教程,该系列教程只有干货没有花里胡哨,欢迎大家一起来学习探讨一起进步。
题外话
感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。
👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python兼职渠道推荐*
学的同时助你创收,每天花1-2小时兼职,轻松稿定生活费.
三、最新Python学习笔记
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)
若有侵权,请联系删除