python 概述及基本语法元素介绍

简介: python 概述及基本语法元素介绍

概述

介绍

Python 是一种跨平台的计算机程序设计语言,是 ABC 语言的替代品,属于面向对象的动态类型语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。

Python 支持多种编程范型,包括函数式、指令式、结构化、面向对象和反射式编程。Python 解释器易于扩展,可以使用 C 或 C++ (或者其他可以通过 C 调用的语言)扩展新的功能和数据类型。Python 也可用于可定制化软件中的扩展程序语言。Python 拥有动态类型系统和垃圾回收功能,能够自动管理内存使用,并且其本身拥有一个巨大而广泛的标准库,提供了适用于各个主要系统平台的源码或机器码。

python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

  • Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于 PHP 和 Perl 语言。
  • Python 是交互式语言: 这意味着,开发者可以在一个 Python 提示符 >>> 后直接执行代码。
  • Python 是面向对象语言: 这意味着 Python 支持面向对象的风格或代码封装在对象的编程技术。
  • **Python 是初学者的语言:**Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。


Python 的优缺点

Python 的优点:

  • 软件质量高
    Python 秉承了简洁、清晰的语法,以及高度一致的编程模式。始终如一的设计风格,可以保证开发出相当规范的代码。
    针对错误,Python 提供了“安全合理”的退出机制。Python 支持异常处理,能有效捕获和处理程序运行时发生的错误,能够监控这些错误并进行处理。
  • 开发速度快
    Python 致力于开发速度的最优化:简洁的语法、动态的类型、无需编译、丰富的库支持等特性使得程序员可以快速的进行项目开发。Python 往往只要几十行代码就可以开发出需要几百行 C 代码的功能。
  • 功能强大
    Python 的功能足够强大,还有许多面向其他系统的接口,所以完全可以使用 Python 开发整个系统的原型。
    为了完成更多特定的任务,Python 内置了许多预编码的库工具,从正则表达式到网络编程,再到数据库编程都支持。在 web 领域、数据分析领域等,Python 还有强大的框架可以帮助快速开发服务。例如:Django、TruboGears、Pylons 等。
  • 易于扩展
    Python 易于扩展,(对于 CPython)可以通过 C 或 C++ 编写的模块进行功能扩展,使其能够成为一种灵活的黏合语言,可以脚本化处理其他系统和组件的行为。
  • 跨平台
    Python 是跨平台的。在各种不同的操作系统上(Linux、windows、MacOS、Unix 等)都可以看到 Python 的身影。因为Python 是用 C 写的,又由于 C 的可移植性,使得 Python 可以运行在任何带有 ANSI C 编译器的平台上。尽管有一些针对不同平台开发的特有模块,但是在任何一个平台上用 Python 开发的通用软件都可以稍事修改或者原封不动的在其他平台上运行。这种可移植性既适用于不同的架构,也适用于不同的操作系统。


Python 的缺点

  • 和 C/C++ 程序相比 Python 的运行速度非常慢
    因为 Python 是解释型语言,代码在执行时会一行一行地翻译成 CPU 能理解的机器码,这个翻译过程非常耗时,所以很慢。而 C 程序是运行前直接编译成 CPU 能执行的机器码,所以非常快。不过,根据二八定律,大多数程序对速度要求不高。某些对运行速度要求很高的情况,Python 设计师倾向于使用 JIT 技术,或者用使用 C/C++ 语言改写这部分程序。
    而且开发时间是宝贵的资源,比 CPU 时间更珍贵。Python 开发速度带来的效益往往比执行速度带来的损失更为重要,尤其是在现代计算机高速的处理能力情况下。 一些改进可能太难以实现,或者可能影响代码的可移植性或可维护性。 并非所有的性能改进都值得付出努力。
  • 代码不能加密
    如果要发布 Python 程序,实际上就是发布源代码。这一点跟 C 语言不同,C 语言不用发布源代码,只需要把编译后的机器码发布出去。要从机器码完整反推出 C 代码是不可能的。


Python 的开发方向和应用场景

  • Web 网络开发
    Python 提供丰富的模块支持 sockets 编程,多线程编程,能方便快速地开发网络服务程序。支持最新的 XML 技术,支持 json 语言,数据库编程,而且 Python 的 ORM 框架,使得操作数据库非常方便。
    Python 还有优秀的 Django、Tornado、Flask 等 web 开发框架,还用众多的开源插件的支持,足以适用各种不同的 web 开发需求。
  • 自动化运维
    Python 对操作系统服务的内置接口,使其成为编写可移植的维护操作系统的管理工具和部件的理想工具。Python 程序可以搜索文件和目录树,可以运行其他程序,可以使用进程和线程并行处理。
  • 网络爬虫
    在文本处理方面,python 提供的 re 模块能支持正则表达式,还提供 SGML,XML 分析模块,许多程序员利用 python 进行 XML 程序的开发。
  • 图形处理
    有 PIL、Tkinter 等图形库支持,能方便进行图形处理。 多媒体应用 ,Python 的 PyOpenGL 模块封装了“OpenGL应用程序编程接口”,能进行二和三维图像处理。PyGame 模块可用于编写游戏软件
  • 除此之外,Python 还应用于游戏、人工智能、大数据分析、机器人等领域,Python 是 人工智能首选的编程语言。


Python 的种类

  • Cpython
    执行过程:程序 ----(C 解释器)----(字节码)----(机器码)---- cpu
    Python 的官方版本,这是 Python 初始的以及维护得最好的实现,使用 C 编写。新的语言特性一般会最先在这里出现。
    CPython 实现会将源文件(py 文件)转换成字节码文件(pyc 文件),然后运行在 Python 虚拟机上。
  • Jyhton
    执行过程:程序 ----(java 解释器)----(字节码)----(机器码)---- cpu
    Python 的 Java 实现,此实现可用作 Java 应用程序的脚本语言,或可用于使用 Java 类库创建应用程序,它也经常用于为 Java 库创建测试。Jython 会将 Python 代码动态编译成 Java字 节码,然后在 JVM 上运行。
  • PyPy
    执行过程:程序 ----(字节码)----(机器码)---- cpu
    完全用 Python 编写的 Python 实现。它支持在其他实现中没有找到的几个高级功能,如 stackless 支持和一个 Just in Time 编译器。PyPy 将 Python 的源码翻编译成字节码再编译成机器码。
  • 其他类别:Python for .NET、IronPython、RubyPython、Brython …


Python 版本(python 2、python 3)

python 有两个版本,python 2.X 和 python 3:

  • python 2.x 的最后一个版本是python 2.7(于 2010 年发布),官方将支持到 2020 年。
  • python 3.X 的第一个版本 python 3.0(于 2008 年发布)
    python 3.X 不兼容 Python 2.X 版本,官方也有发布 python2.6 作为过渡到 Python 3.0 的版本,2.6 之后的版本都为过渡版本。

为什么要开发 Python 3.X 版本呢?因为 python 发展了 20 多年,里面有很多重复的功能,重复的模块,很多代码也变得不那么简洁,所以 Guido 决定进行一次彻底的升级,原则是去繁从简,从而有了后续的 Python 3.X 版本。


基本语法

基本语法元素

缩进 和 注释

  • 缩进
    在 java、c/c++ 语言中,用 “{ }” 代表代码块。
    Python 使用缩进(空格,最好是 4 个空格)来表示代码块,不需要使用大括号{},连续的多条具有相同缩进量的语句为一个代码块。
    缩进的空格数是可变的,但是 同一个代码块的语句必须包含相同的缩进空格数
    例如:if 、for、 while、 def 、 class 等语句都会使用到代码块。通常,语句末尾的冒号代表代码块的开始,示例如下:
if x>0:
    y=1
else:
    y=-1    # 注意:同一个代码块中的语句,其缩进量应相同,否则会出现 indentationError (缩进错误)异常。
  • 注释为程序添加说明性语句,帮助程序员阅读和理解代码。
  • 单行注释:# 注释内容
  • 多行注释:“”" 注释内容 “”" 或 ‘’’ 注释内容 ‘’’


语句续行符号( \ )和 语句分隔符( ; )

  • 语句续行符号( \ )
    通常 Python 中的一条语句占一行,没有语句结束符号。当语句较长时,可以使用反斜杠( \ )来实现多行语句
    注意:在符号( \ )之后不能有其他符号,包括空格和注释。
  • 语句分隔符( ; )
    使用语句分隔符分隔的多条语句可视为一条复合语句,Python 允许将单独的语句或复合语句写在冒号之后。


保留字 和 关键字

  • 保留字是程序设计语言中保留的单词,以便版本升级更新后使用。
    关键字是程序设计语言中作为命令或常量的单词。
  • 注意:
  • 保留字和关键字不允许作为变量或其他标识符使用。
  • python 区分标识符的大小写,保留字和关键字必须严格区分大小写。


Python 3.7.2 中 35 个保留字的含义及作用

序号 保留字 说明
1 and 逻辑与操作,用于表达式运算
2 as 用于转换数据类型
3 assert 用于判断变量或条件表达式的结果
4 async 用于启用异步操作
5 await 用于异步操作中等待协程返回
6 break 中断循环语句的执行
7 class 定义类
8 continue 继续执行下一次循环
9 def 定义函数或方法
10 del 删除变量或序列的值
11 elif 条件语句,与 if、else 结合使用
12 else 条件语句,与 if、else 结合使用;也可用于异常或循环语句
13 except 包含捕获异常后的处理代码块,与 try、finally 结合使用
14 False 含义为“假”的逻辑值
15 finally 包含捕获异常后的始终要调用的代码块,与 try、except 结合使用
16 for 循环语句
17 from 用于导入模块,与 import 结合使用
18 global 用于在函数或其他局部作用域中使用全局变量
19 if 条件语句,与 elif、else 结合使用
20 import 导入模块,与 from 结合使用
21 in 判断变量是否在序列中
22 is 判断变量是否为某个类的实例
23 lambda 定义匿名函数
24 None 表示一个空对象或是一个特殊的空值
25 nonlocal 用于在函数或其他作用域中使用外层(非全局)变量
26 not 逻辑非操作,用于表达式运算
27 or 逻辑或操作,用于表达式运算
28 pass 空的类、方法或函数的占位符
29 raise 用于抛出异常
30 return 从函数返回计算结果
31 True 含义为“真”的逻辑值
32 try 测试执行可能出现异常的代码,与 except, finally 结合使用
33 while 循环语句
34 with 简化 Python 的语句
35 yield 从函数依次返回值
相关文章
|
26天前
|
人工智能 Ubuntu IDE
【Python】基础:环境配置与基础语法
本文介绍了Python编程语言及其环境配置方法。Python由Guido van Rossum于1991年创建,以其简洁、易学和强大的功能著称。文章详细讲解了Python的主要特点、Windows和Ubuntu下的安装配置步骤、基础语法、控制流、函数、文件操作、模块使用及面向对象编程等内容,帮助读者快速入门Python编程。
52 4
|
5天前
|
机器学习/深度学习 数据挖掘 开发者
Python编程入门:理解基础语法与编写第一个程序
【10月更文挑战第37天】本文旨在为初学者提供Python编程的初步了解,通过简明的语言和直观的例子,引导读者掌握Python的基础语法,并完成一个简单的程序。我们将从变量、数据类型到控制结构,逐步展开讲解,确保即使是编程新手也能轻松跟上。文章末尾附有完整代码示例,供读者参考和实践。
|
15天前
|
存储 Python Perl
python正则语法
本文介绍了正则表达式的基础知识及其在 Python 中的应用。首先解释了为什么要使用正则表达式,通过一个判断手机号的示例展示了正则表达式的简洁性。接着详细介绍了 `re` 模块的常用方法,如 `match()`、`search()`、`findall()`、`finditer()` 等,并讲解了正则表达式的基本语法,包括匹配单个字符、数字、锚字符和限定符等。最后,文章还探讨了正则表达式的高级特性,如分组、编译和贪婪与非贪婪模式。
15 2
|
21天前
|
存储 程序员 开发者
Python编程入门:从零开始掌握基础语法
【10月更文挑战第21天】本文将带你走进Python的世界,通过浅显易懂的语言和实例,让你快速了解并掌握Python的基础语法。无论你是编程新手还是想学习一门新的编程语言,这篇文章都将是你的不二之选。我们将一起探索变量、数据类型、运算符、控制结构、函数等基本概念,并通过实际代码示例加深理解。准备好了吗?让我们开始吧!
|
1月前
|
存储 C语言 索引
Python 语法及入门 (超全超详细) 专为Python零基础 一篇博客让你完全掌握Python语法
本文全面介绍了Python的基础知识,包括Python的诞生背景、为什么学习Python、Python的应用场景、Python环境的安装、Python的基础语法、数据类型、控制流、函数以及数据容器的使用方法,旨在为Python零基础读者提供一篇全面掌握Python语法的博客。
39 0
Python 语法及入门 (超全超详细) 专为Python零基础 一篇博客让你完全掌握Python语法
|
1月前
|
存储 数据可视化 数据处理
【Python篇】快速理解Python语法:全面指南
【Python篇】快速理解Python语法:全面指南
45 1
|
2月前
|
Java Linux C++
30天拿下Python之基础语法
30天拿下Python之基础语法
29 4
|
3天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
3天前
|
机器学习/深度学习 数据挖掘 Python
Python编程入门——从零开始构建你的第一个程序
【10月更文挑战第39天】本文将带你走进Python的世界,通过简单易懂的语言和实际的代码示例,让你快速掌握Python的基础语法。无论你是编程新手还是想学习新语言的老手,这篇文章都能为你提供有价值的信息。我们将从变量、数据类型、控制结构等基本概念入手,逐步过渡到函数、模块等高级特性,最后通过一个综合示例来巩固所学知识。让我们一起开启Python编程之旅吧!
|
3天前
|
存储 Python
Python编程入门:打造你的第一个程序
【10月更文挑战第39天】在数字时代的浪潮中,掌握编程技能如同掌握了一门新时代的语言。本文将引导你步入Python编程的奇妙世界,从零基础出发,一步步构建你的第一个程序。我们将探索编程的基本概念,通过简单示例理解变量、数据类型和控制结构,最终实现一个简单的猜数字游戏。这不仅是一段代码的旅程,更是逻辑思维和问题解决能力的锻炼之旅。准备好了吗?让我们开始吧!