[Python学习日记-2] Python的介绍与安装

news2025/1/25 9:04:09

[Python学习日记-2] Python的介绍与安装

Python的介绍和发展趋势

Python环境安装

开发你的第一个Python程序

Python的介绍和发展趋势

一、Python发展史

        Python是一种高级编程语言,由Guido van Rossum(龟叔,荷兰人)于1989年圣诞节创造,至于为什么叫Python,据说是他喜欢的一个电视节目其中一个字母是Python所以就以此为命名。以下是Python发展的一些重要里程碑。

  • 1991年,第一个Python编译器诞生,是Python的第一个公开版本,称为Python 0.9.0,它是用C语言实现的,并能够调用C语言的库文件。从一出生,Python已经具有了:类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展系统。

  • 1994年,Python 1.0发布,引入了异常处理和模块化系统。

  • 2000年,Python 2.0发布,添加了列表推导式和垃圾回收机制,构成了现在Python语言架构的基础。

  • 2004年,Python 2.4发布,同年目前最流行的WEB框架Django诞生。

  • 2005年,国内豆瓣创立,该网站就是使用Python进行开发,这时候开始推广到国内。

  • 2006年,Python 2.5发布。

  • 2008年,10月1日Python2.6发布;同年12月3日Python 3.0发布,引入了许多不兼容的变化,以改进语言的一致性和设计。

  • 2009年,Python3.1发布。

  • 2010年,Python2.7发布,至此Python 2.x和3.x并行发展,但在2010年之后,Python 3.x成为主要的发展方向。(为什么2008年推出了3.0,而2010年又推出了2.7呢?这是因为Python开发的时候并不是只有龟叔一个人开发的,而是由社区共同开发,这样一些原来用开其他语言的程序员就会带来一些不符合Python语法的写法,3.0版本就是龟叔为了结束这种现象而开发的版本,但是因为3.0不向下兼容2.0,致大家都拒绝升级3.0,无奈官方只能推出2.7过渡版本,不过2.7官方宣布只支持到2020年,将不会再有2.8,并要求使用2.0的项目尽快移植到3.0上)

  • 2012年,Python3.3发布,同时云计算兴起,其中Openstack平台使用Python开发,是的Python流行了一波。

  • 2014年,Python3.4发布,AI兴起,由于Python的易用性,大量的算法使用Python编写。

  • 2015年,Python3.5发布。

  • 2017年,Python 3.6发布,引入了异步编程支持和格式化字面量,开始走入大众视野。

  • 2018年,Python 3.7发布,引入了许多新的语言特性和改进。

  • 2019年,Python 2.x系列停止维护,推动用户迁移到Python 3.x。

  • 目前,Python仍在不断发展,每年发布新的版本,以改进性能,添加新的特性和库。

        Python的发展史显示了它逐渐成为一种流行的编程语言,它的简洁和易读的语法使得它成为初学者入门编程的首选语言之一。

        但是目前还有很多旧的应用还是使用Python2,这样我们学习应该是学习Python3还是Python2呢?我们从发展历史来看,肯定是选择Python3,从官方的说法看,Python2已经成为了遗产。

二、主要应用领域

1、WEB开发——最火的Python web框架Django,支持异步高并发的Tornado框架,短小精悍的flask,bottle,Django官方的标语把Django定义为the framework for perfectionist with deadlines(大意是一个为完全主义者开发的高效率web框架)。

2、网络编程——支持高并发的Twisted网络框架,py3引入的asyncio使异步编程变的非常简单。

3、爬虫——爬虫领域,Python几乎是霸主地位,Scrapy\Request\BeautituSoap\urllib等,想爬啥就爬啥。

4、云计算——目前最火最知名的云计算框架就是OpenStack,Python现在的火,很大一部分就是因为云计算。

5、人工智能、数据分析——Python是目前公认的人工智能和数据分析领域的必备语言。

6、自动化运维——问问中国的每个运维人员,运维人员必须会的语言是什么?10个人相信会给你一个相同的答案,它的名字叫Python。

7、金融分析——好多分析程序、高频交易软件就是用的Python,到目前,Python是金融分析、量化交易领域里用的最多的语言。

8、科学运算——97年开始,NASA就在大量使用Python在进行各种复杂的科学运算,随着NumPy,ScIPy,Matplotllb,Enthought librarys等众多程序库的开发,使的Python越来越适合于做科学计算、绘制高质量的2D和3D图像,和科学计算领域最流行的商业软件Matlab相比,Python是一门通用的程序设计语言,比Matlab所采用的脚本语言的应用范围更广泛。

9、游戏开发——在网络游戏开发中Python也有很多应用。相比Lua or C++,Python比Lua有更高阶的抽象能力,可以用更少的代码描述游戏业务逻辑,与Lua 相比,Python 更适合作为一种Host语言,即程序的入口点是在Python 那一端会比较好,然后用C/C++在非常必要的时候写一些扩展。Python非常适合编写1万行以上的项目,而且能够很好地把网游项目的规模控制在10万行代码以内。另外知名的游戏《文明》就是用Python写的。

三、那些公司用Python

1、谷歌:Google App Engine、code.google.com 、Google earth 、谷歌爬虫、Google广告等项目都在大量使用Python开发,龟叔2005-2012年加入了谷歌,所以谷歌才会有那么大量的Python所写的项目。
2、CIA:美国中情局网站就是用Python开发的。
3、NASA:美国航天局(NASA)大量使用Python进行数据分析和运算。
4、YouTube:世界上最大的视频网站YouTube就是用Python开发的。
5、Dropbox:美国最大的在线云存储网站,全部用Python实现,每天网站处理10亿个文件的上传和下载,2013年龟叔加入了Dropbox,所以也把Python带到了该公司。
6、Instagram:美国最大的图片分享社交网站,每天超过3千万张照片被分享,全部用Python开发。
7、Facebook:大量的基础库均通过Python实现的。
8、Redhat:世界上最流行的Linux发行版本中的yum包管理工具就是用Python开发的。
9、豆瓣:公司几乎所有的业务均是通过Python开发的。
10、知乎:国内最大的问答社区,通过Python开发(国外Quora)。
11、春雨医生:国内知名的在线医疗网站是用Python开发的。
        除上面之外,还有搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝、土豆、新浪、果壳等公司都在使用Python完成各种各样的任务。

四、Python的优缺点

1、优点

  • Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。
  • 开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。
  • 高级语言——当你用Python语言编写程序的时候,你无需考虑诸如,如何管理你的程序使用的内存一类的底层细节。
  • 可移植性——由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就几乎可以在市场上所有的系统平台上运行。
  • 可扩展性——如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。
  • 可嵌入性——你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。

2、缺点

  • 速度慢,Python 的运行速度相比C语言确实慢很多,跟JAVA相比也要慢一些,因此这也是很多所谓的大牛不屑于使用Python的主要原因,但其实这里所指的运行速度慢在大多数情况下用户是无法直接感知到的,必须借助测试工具才能体现出来,比如你用C运一个程序花了0.01s,用Python是0.1s,这样C语言直接比Python快了10倍,算是非常夸张了,但是你是无法直接通过肉眼感知的,因为一个正常人所能感知的时间最小单位是0.15-0.4s左右。其实在大多数情况下Python已经完全可以满足你对程序速度的要求,除非你要写对速度要求极高的搜索引擎等,这种情况下,当然还是建议你用C去实现的。
  • 代码不能加密,因为Python是解释性语言,它的源码都是以名文形式存放的,不过我不认为这算是一个缺点,如果你的项目要求源代码必须是加密的,那你一开始就不应该用Python来去实现。
  • 线程不能利用多核问题,这是Python被人诟病最多的一个缺点,GIL即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。在Linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程的执行。一个Python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行。不过这也是有折中的解决办法的。

        Python的确有大大小小的缺点,但是也有比较突出的优点,这里只能说没有一门编程语言是完美无缺的,只能说每门编程语言都有自己擅长的领域。 

Python环境安装

        前面提到Python是一门解释型语言,所以我们所说的安装Python就是安装它的解释器。我们常用的系统有Windows、Mac、Linux、Unix,而在Mac、Linux、Unix上Python的解释器都是自带的,所以我们这里的安装主要就是Windows的安装。

1、访问Python官网,进入下载页面

2、选择需要下载的版本,这里我们以3.12.4为例

        一开始看到的Download就是下载最新版本的

         往下拉动可以看到有其他版本的

        进入后可以看到很多说明文档和下载选项,我们选择Windows的版本下载(64位选择,Windows installer (64-bit))

3、 下载完成后双击打开

 

        Add python.exe to PATH 为安装时是否添加环境变量(在cmd当中,任意目录都可以找到python.exe),若不勾选,后续也可以通过手工配置的形式进行设置

        新手可以直接选择Install Now,会默认安装在C盘下,选择Customize installation则是自定义安装,选择这个就可以选择安装什么模块,安装在什么地方,这里我们选择Customize installation

4、选择需要安装的模块,这里直接Next就好了

5、 选择安装路径

6、开始安装

7、 安装完毕

8、环境变量设置(前面安装开始时勾选了Add python.exe to PATH的可以忽略这一步) 

        鼠标选中此电脑,然后右键选择属性

        选择高级系统设置

        高级-环境变量

        上面的Path为用户环境变量针对单一用户的,下面是系统的环境变量针对所有用户,我们选择修改系统环境变量中的Path

        加入安装时所选的路径中的根目录和Scripts即可,以安装在D:\Python312\为例

9、验证是否安装成功

         打开cmd,输入python,看到相应的版本号即为安装成功

开发你的第一个Python程序

        第一个Python程序我们使用非常原始的编写方式——用记事本写,创建新的txt文件,创建完毕后修改后缀,修改为.py,如下图所示

         右键-打开方式-选择其他应用-选择记事本打开修改,输入一下代码,然后保存退出

在屏幕上打印Hello World!
print("Hello World!")

        回到cmd,输入一下命令

> python D:\Python_program\first_py_program.py

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

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

相关文章

Cursor搭配cmake实现C++程序的编译、运行和调试

Cursor搭配cmake实现C程序的编译、运行和调试 Cursor是一个开源的AI编程编辑器,开源地址https://github.com/getcursor/cursor ,它其实是一个集成了Chat-GPT的VS Code。 关于VS Code和VS的对比可以参考这篇文章VS Code 和 Visual Studio 哪个更好&…

ASPCMS漏洞之文件上传漏洞

ASPCMS是由上⾕⽹络开发的全新内核的开源企业建站系统,能够胜任企业多种建站需求,并且 ⽀持模版⾃定义、⽀持扩展插件等等,能够在短时间内完成 企业建站。 步骤一:访问靶场 访问后台页面——登录后台——填写用户密码&#xff0…

混合密度网络Mixture Density Networks(MDN)

目录 简介1 介绍2 实现3 几个MDN的应用:参考 简介 平方和或交叉熵误差函数的最小化导致网络输出近似目标数据的条件平均值,以输入向量为条件。对于分类问题,只要选择合适的目标编码方案,这些平均值表示类隶属度的后验概率&#x…

记录一次单例模式乱用带来的危害。

项目场景: 我们在接受到短信网关下发的回执之后,需要将回执内容也下发给我们的下游服务。为了防止下游响应超时,我们需要将超时的信息存放到Redis中然后进行补发操作。 问题描述 在使用Redis进行数据存储的时候,报NPE问题。 原因…

Leetcode第136场双周赛题解(c++)

题外话 也是好久没有更新力扣比赛的题解了,前段时间也是比较忙(说的好像现在不忙一样哈哈),像我等菜鸟,一般都是保二进三四不写的,笑死。 题目一.求出胜利玩家的数目 给你一个整数 n ,表示在…

【C++ STL】vector

文章目录 vector1. vector的接口1.1 默认成员函数1.2 容量操作1.3 访问操作1.4 修改操作1.5 vector与常见的数据结构的对比 2. vector的模拟实现2.1 类的定义2.2 默认成员函数迭代器的分类 2.3 容量接口memcpy 浅拷贝问题内存增长机制reserve和resize的区别 2.4 修改接口迭代器…

ScreenAgent:基于LVLM的计算机控制智能体

ScreenAgent : A Vision Language Model-driven Computer Control Agent 论文链接: https://arxiv.org/abs/2402.07945https://arxiv.org/abs/2402.07945IJCAI 2024 1.概述 大型语言模型(LLM),诸如ChatGPT与GPT-4,在自然语言处理领域(涵盖生成、理解及对话等任务)展现出…

springBoot 3.X整合camunda

camunDa camunDa 是2013年从Activiti5 中分离出来的一个新的工作流引擎。Camunda 官方提供了 Camunda Platform、Camunda Modeler,其中 Camunda Platform 以 Camunda engine 为基础为用户提供可视化界面,Camunda Modeler 是流程文件建模平台&#xff0c…

python 的 tuple(元组) 是不是冗余设计?

有人问,python 的 tuple(元组) 是不是冗余设计?因为它和list(列表)很像。 先抛观点,tuple不是冗余设计,它最大的特点是不可变,在Python程序设计中非常重要。 tuple与li…

药店管理小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,药品分类管理,药品信息管理,留言板管理,订单管理,系统管理 微信端账号功能包括:系统首页,药品信息&#xf…

VBA中类的解读及应用第十四讲:限制复选选择,程序运行过程及效果

《VBA中类的解读及应用》教程【10165646】是我推出的第五套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。 类,是非常抽象的,更具研究的价值。随着我们学习、应用VBA的深入&#xff0…

【Vue3】组件通信之$parent

【Vue3】组件通信之$parent 背景简介开发环境开发步骤及源码总结 背景 随着年龄的增长,很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来,技术出身的人总是很难放下一些执念,遂将这些知识整理成文,以纪念曾经努力学习奋斗的…

利用Dockerfile文件执行docker build自动构建镜像

一、Dockerfile使用详解 1.1 Dockerfile介绍 DockerFile是一种被Docker程序解释执行的脚本,由一条条的命令组成的,每条命令对应linux下面的一条命令,Docker程序将这些DockerFile指令再翻译成真正的linux命令,其有自己的书写方式和…

读零信任网络:在不可信网络中构建安全系统08设备清单管理

1. 设备清单管理 1.1. 设备的认证和完整性检查是零信任安全至关重要的第一大步,但是仅仅验证设备是否属于企业是不够的 1.2. 设备清单管理涉及对设备及其属性进行编目管理 1.2.1. 将配置管理作为设备清单数据库 1.2.2. 维护/管理这些记录对客户端和服务器设备同样…

AI电销机器人的效果与作用

ai电销机器人的工作效率是非常高的,电销机器人一天的外呼量至少是3000左右,工作效率是人工的十倍还多,并且电销机器人没有负面情绪,一直都可以保持高昂的工作热情,非常简单方便。 并且ai电销机器人是越用越聪明的&…

刘润《关键跃升》读书笔记3

1) 防御动⼒”发动机 ⽐如,恐惧。 转正考核、末位淘汰等,本质上都是在制造“危险”环境,从⽽激发员 ⼯全⼼投⼊。万⼀没转正,万⼀被淘汰,房贷怎么还,孩⼦怎么养? 你想想都害怕&am…

【Redis 进阶】哨兵 Sentinel(重点理解流程和原理)

Redis 的主从复制模式下,一旦主节点由于故障不能提供服务,需要人工进行主从切换,同时大量的客户端需要被通知切换到新的主节点上,对于上了一定规模的应用来说,这种方案是无法接受的,于是 Redis 从 2.8 开始…

sa-token登录机制以及网关统一鉴权环境搭建

文章目录 1.sa-token1.37集成(基于token)1.文档网址2.**sun-club-auth-application-controller引入依赖**3.application.yml4.sun-club-auth-application-controller测试的controller1.UserController.java2.启动测试1.登录,得到satoken2.验证…

当AIGC走进温室大棚:AI+“种菜“的前世今生

( 于景鑫 国家农业信息化工程技术研究中心) 近年来,人工智能生成内容(AIGC)技术引发业界广泛关注。从NLP领域的GPT-3到CV领域的Stable Diffusion,AIGC展现了惊人的创造力,正在重塑人们的工作和生活方式。与此同时,农业领域也正经历着数字化、智能化的深刻…

Golang环境篇

一、Golang环境篇 一)go简介 1、Golang定义 Go语言是Google于2009年推出的一门新的系统编程语言。 2、特性: 静态编译内存分配:Go 选择了 tcmalloc,它本就是为并发而设计的高性能内存分配组件。垃圾回收:每次升级&…