python基础学习-01

news2025/1/12 22:07:03

Python 是一种简单易学并且结合了解释性、编译性、互动性和面向对象的脚本语言。Python提供了高级数据结构,它的语法和动态类型以及解释性使它成为广大开发者的首选编程语言。

  • Python 是解释型语言: 开发过程中没有了编译这个环节。类似于PHP和Perl语言。

  • Python 是交互式语言: 可以在一个 Python 提示符 >>> 后直接执行代码。

  • Python 是面向对象语言: Pytho

    虽然Python源代码文件(.py)可以直接使用Python命令运行,但实际上Python并不是直接解释Python源代码,它是具有一个编译和运行的过程,具体过程如下图:

    首先将Python源代码(.py文件)编译生成Python字节码(Python Byte Code,字节码文件的扩展名一般是.pyc),然后再由Python虚拟机(Python Virtual Machine,简称PVM)来执行Python字节码,最后在终端输出运行结果。

    通过以上编译和运行过程可分析:Python是一种解释型语言,指的是解释Python字节码,而不是Python源代码。这种机制的基本思想与Java和.NET是一致的。

    n支持面向对象的风格或代码封装在对象的编程技术。

  • Python解释器(Interpreter是把Python语言翻译成计算机 CPU 能听懂的机器指令。

    首先可以在命令提示行输入python --version来查看python的版本:

    $ python --version
    Python 3.7.4

    然后在命令提示符中输入"Python"命令来启动Python解释器:

    $ python

    执行以上命令后,出现如下信息:

    $ python
    Python 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>>

    Python解释器易于扩展,可以通过调用C语言或C++来扩展新功能和数据类型。

 Python字节码(.pyc)

Python中的字节码(bytecode) 是一种数据类型, Python代码的编译结果就是bytecode对象。bytecode对象可以由虚拟机加载后直接运行,而pyc文件就是bytecode在硬盘上的保存形式。

假如有个test.py文件需要执行,那么它会先生成.pyc文件,一般可能的情况如下:

  1. 执行 python test.py 会对test.py进行编译成字节码并解释执行,但不会生成test.pyc。
  2. 如果test.py中加载了其他模块,如import urllib2,那么python会对urllib2.py进行编译成字节码,生成urllib2.pyc,然后对字节码解释执行。
  3. 如果想生成test.pyc,可以使用python内置模块py_compile来编译,也可以执行命令 python -m py_compile test.py 这样,就生成了test.pyc。
  4. 加载模块时,如果同时存在.py和.pyc,python会使用.pyc运行,如果.pyc的编译时间早于.py的时间,则重新编译 .py文件,并更新.pyc文件。

如下为生成的.pyc文件示例:

  •  Python解释器种类

  • Cpython:用C语言开发的,在命令行下运行Python就是启动Cpython解释器,官方下载的python2.7均为Cpython。Cpython用>>>作为提示符。
  • Ipython:基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。IPython用In [序号]:作为提示符。
  • PyPy:主要针对执行速度。采用JIT技术,对Python代码进行动态编译。绝大部分Python代码都可以在PyPy下运行。
  • Jpython:运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。
  • IronPython:运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。
  • Boost.Python:使得Python和C++的类库可互相调用(.pyc)。

  • Python虚拟机

    python并不将py文件编译为机器码来运行,而是由python虚拟机一条条地将py语句解释运行,python虚拟机的执行方式就是模仿普通x86可执行文件运行方式。

    虚拟机输入为字节码.pyc文件,由字节码文件加载器将二进制的.pyc文件加载到内存,由执行引擎解释执行,输出为字节码文件的执行结果。

    Python的应用

    Python的应用主要有以下领域:

  • Linux/UNIX运维:提供API(Application Programming Interface应用程序编程接口),能方便进行系统维护和管理。
  • GUI程序开发(PyQt、Kivy等)
  • Web程序开发(Django、Flask等框架):支持最新的XML技术。
  • 移动App开发(PyQt、Kivy等):Python的PyOpenGL模块封装了“OpenGL应用程序编程接口”,能进行二维和三维图像处理。PyGame模块可用于编写游戏软件。
  • 网络爬虫(为搜索引擎、深度学习等领域提供数据源)
  • 网络编程(基于Socket等协议):提供丰富的模块支持sockets编程,能方便快速地开发分布式应用程序。很多大规模软件开发计划例如Zope,Mnet 及BitTorrent. Google都在广泛地使用它。
  • 图形处理:有PIL、Tkinter等图形库支持,能方便进行图形处理。
  • 文本处理:python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。
  • 数据库编程:可通过遵循Python DB-API(数据库应用程序编程接口)规范的模块与Microsoft SQL Server,Oracle,Sybase,DB2,Mysql、SQLite等数据库通信。python自带有一个Gadfly模块,提供了一个完整的SQL环境。
  • 数据科学:NumPy扩展提供大量与许多标准数学库的接口。机器学习(scikit-learn、TensorFlow框架)、数据统计分析和可视化(Matplotlib、seaborn框架)。

    python应用举例:

  • Google - 谷歌在很多项目中用python作为网络应用的后端,如Google Groups、Gmail、Google Maps等
  • NASA - 美国宇航局,从1994年起把python作为主要开发语言
  • 豆瓣网 - 图书、唱片、电影等文化产品的资料数据库网站
  • Torchlight --Python编写的大型3D游戏,原Blizzard公司人员制作发行,开源
  • Blender - 以C与Python开发的开源3D绘图软件 在科学研究中也得到广泛的应用

  • Python的特点

  • 简单易读易学:Python是非常简单的语言,并且具有清晰的风格和强制缩进,Python具有简单的语法,极其容易入门。
  • 免费其开源:Python是自由/开放源码的软件。可以自行对其源代码进行修改使用。
  • 可移植性:Python可以被移植在许多平台上,常用的平台包括Linux、Windows、VxWorks、PlayStation、Windows CE、PocketPC等。
  • 解释性: Python解释器把源代码转换成字节码,然后再把它翻译成计算机使用的机器语言并运行,即Python代码在运行之前不需要编译。
  • 面向对象:Python支持面向对象的编程。程序通过组合(composition)与继承(inheritance)的方式定义类(class)。
  • 可扩展性:如果需要一段关键代码运行得更快或者希望某些算法不公开,那么可以将部分程序用C或C++进行编写,然后在Python程序中调用。
  • 可嵌入性:可以把Python嵌入C/C++程序,从而向程序用户提供脚本功能。
  • 交互式命令行:python可以单步直译运行,可以在一个 Python 提示符 >>> 后直接执行代码。
  • 丰富的标准库:Python标准库包括字符串处理(字典、数组切片、正则表达式re)、文档生成、多线程、串行化、数据库、HTML/XML解析(BeautifulSoup,Expat)、单元测试(PyUnit)、代码版本控制(PySVN)、WAV文件、网络控制(urllib2)、密码系统、GUI(图形用户界面,PyQt)、图形模块(Tkinter、PyTCL、WxPython)等。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。
  • 规范性:采用强制缩进的方式使得代码具有较好可读性,减少了视觉上的错乱。
  • 胶水语言:python经常用作将不同语言编写的程序“粘”在一起的胶水语言。Boost.Python使得Python和C++的类库可互相调用(.pyc);Jpython是用Java实现的Python,可以同时使用两者的类库;Ironpython是Python在.NET平台上的版本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1401503.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如操作系统的心跳,运行状况无可逃避:Shell脚本揭示系统鲜活秘密!

简介 Ubuntu 系统保姆监控脚本,全自动化解读系统运行状态!脚本轻量化、资源节约,并且能够定期检测硬盘容量、内存占用和缓存情况。一旦发现缓存占用过高,即刻自动清理缓存,并将结果写入指定目录的日志文件中。日志文件…

鸿蒙开发-UI-布局-相对布局

鸿蒙开发-UI-布局 鸿蒙开发-UI-布局-线性布局 鸿蒙开发-UI-布局-层叠布局 鸿蒙开发-UI-布局-弹性布局 文章目录 前言 一、基本概念 二、设置依赖 1.锚点设置 2.设置相对于锚点的对齐位置 三、使用场景 总结 前言 上文详细学习常见布局方式-弹性布局,学习弹性布局容…

知识图谱KG+大模型LLM

LLM-based KG KnowLM OpenSPGKG-based RAG 基本原理 从query出发的语义解析 pre-LLM方法 思想:直接将问题解析为对应的逻辑表达式,然后到知识图谱中查询。 方法:通常包含逻辑表达式、语义解析算法、语义解析模型训练三部分。一般步骤是将问句…

NODE介绍和环境安装

浏览器是JS的前端运行环境 Node.js是JS的后端运行环境 Node.js中无法调用DOM和BOM等浏览器内置API 基于Express框架,快速构建web应用 基于Electron框架,构建跨平台桌面应用 基于restify框架快速构建API接口项目 读写数据库 下载Node.js环境 网址&…

linux下的nginx相关配置练习

1.基于域名[www.openlab.com](http://www.openlab.com)可以访问网站内容为 welcome to openlab!!! [rootlocalhost ~]# systemctl stop firewalld.service #关闭防火墙 [rootlocalhost ~]# setenforce 0 #关闭selinux [rootlocalhost www]# vim /etc/nginx/conf.d/test_ope…

python 之 指定小数的输出

文章目录 **使用 round() 函数:****使用字符串格式化:****使用f-字符串:****使用 decimal 模块:** 在Python中,可以使用不同的方法来指定浮点数的小数位数。以下是其中一些常见的方式: 使用 round() 函数&…

mapboxGL中的航线动画

概述 借用上篇文章中二阶贝塞尔曲线的生成,本文实现mapboxGL中的航线动画。 效果 实现 1. 初始化地图 const from [101.797439042302, 36.5937248286007]; const to [106.9733, 35.217]; const points new ArcLine(from, to); const line new Geometry(poin…

【Qt】—— Qt的基本介绍

目录 (一)什么是Qt (二) Qt的发展史 (三)Qt⽀持的平台 (四) Qt版本 (五)Qt的优点 (六)Qt的应⽤场景 (七&#xff09…

tag 标签

tag 标签 在使用 Git 版本控制的过程中,会产生大量的版本。如果我们想对某些重要版本进行记录,就可以给仓库历史中的某一个commit 打上标签,用于标识。 在本章中,我们将会学习如何列出已有的标签、如何创建和删除新的标签、以及…

Windows使用wsl2安装docker教程

windows环境搭建专栏🔗点击跳转 win系统环境搭建(十一)——Windows安装docker 文章目录 win系统环境搭建(十一)——Windows安装docker1.搭建WSL2环境1.1 docker官网对环境要求的描述[System requirements](https://do…

JavaScript 学习笔记(WEB APIs Day3)

「写在前面」 本文为 b 站黑马程序员 pink 老师 JavaScript 教程的学习笔记。本着自己学习、分享他人的态度,分享学习笔记,希望能对大家有所帮助。推荐先按顺序阅读往期内容: 1. JavaScript 学习笔记(Day1) 2. JavaSc…

云服务器定价_云服务器价格_云主机计费模式_腾讯云

腾讯云服务器租用价格表:轻量应用服务器2核2G3M价格62元一年、2核2G4M价格118元一年,540元三年、2核4G5M带宽218元一年,2核4G5M带宽756元三年、轻量4核8G12M服务器446元一年、646元15个月,云服务器CVM S5实例2核2G配置280.8元一年…

Mysql运维篇(二) 主从复制

一路走来,所有遇到的人,帮助过我的、伤害过我的都是朋友,没有一个是敌人,如有侵权请留言,我及时删除。 一、主从复制的原理 主库会生成一个I/O操作线程进去写的的操作,而从库则生成两个线程,其…

08. 面向对象编程(二)

目录 1、前言 2、多重继承 2.1、潜在的问题 3、Property 4、staticmethod 5、运算符重载 5.1、加法运算符 的重载 5.2、字符串表示运算符 str() 的重载 5.3、索引运算符 [] 的重载 6、小结 1、前言 上一篇文章中,我们介绍了面向对象编程的类和实例&…

安规电容的知识

1、常见安规电容有哪些? 一般我们所说的安规电容也就有两种,一种就是X安规电容(X1/X2/X3安规电容),还有一种是Y电容(最常见的是Y1和Y2安规电容)。 2、x电容的位置 火线零线间的是X电容。x电容用…

保证缓存一致性的常用套路

缓存更新的套路 看到好些人在写更新缓存数据代码时,先删除缓存,然后再更新数据库,而后续的操作会把数据再装载的缓存中。然而,这个是逻辑是错误的。试想,两个并发操作,一个是更新操作,另一个是查…

傲梅轻松备份-备份rocky9,并还原备份

傲梅分区助手磁盘备份功能免费;备份iso镜像不支持linux,好像只能备份window;且备份镜像收费功能,永久授权99; 概述: 1)新建备份U盘 2)新建虚拟机,配置虚拟机&#xff…

C++将信息输入到文件内

第一步检查文件是否打开&#xff0c;用到头文件&#xff1a; #include <fstream> #include <sstream> 文件打开的函数为 file.isopen() 信息输入到文件应该为 file << "" << value; 注意是file<< 如图 定义file ofstream f…

Dell戴尔XPS 8930笔记本电脑原装Win10系统 恢复出厂预装OEM系统

链接&#xff1a;https://pan.baidu.com/s/1eaTQeX-LnPJwWt3fBJD8lg?pwdajy2 提取码&#xff1a;ajy2 原厂系统自带所有驱动、出厂主题壁纸、系统属性联机支持标志、系统属性专属LOGO标志、Office办公软件、MyDell等预装程序 文件格式&#xff1a;esd/wim/swm 安装方式&am…

FFT加窗和频谱泄露

所谓加窗&#xff0c;目的就是针对非整周期采样得到的非自窗信号&#xff08;self-windowing signal&#xff09;&#xff0c;缓解其频谱分析结果中的能量泄漏现象&#xff08;注意是“缓解”&#xff0c;而不是“避免”或“消除”&#xff09;。所谓信号整周期采样&#xff08…