• 写给小白的Python之001:Python简介及安装


    导读:

    1.Python是什么?

    2.Python的优点

    3.Python的缺点

    4.Python擅长的领域

    一、Python是什么?

    Python时候全球4大最流行的编程语言之一,因为其语法简洁、功能强大,目前已广泛应用于人工智能、云计算开发、大数据开发、数据分析、科学运算、网站开发、爬虫、自动化运维、自动化测试、游戏开发金融分析等领域。

    二、Python的优点

    1. Python的定位是“优雅”、“明确”、“简单”。

    2. 开发效率非常高。

    Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。记住,只要安装了Python,所有这些功能都是可用的。这被称作Python“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。

    3. 高级语言。

    当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节。

    4. 可移植性。

    由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就几乎可以在市场上所有的系统平台上运行。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至还有PocketPC、Symbian以及Google基于linux开发的Android平台!

    5. 可扩展性。

    如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。

    6. 可嵌入性。

    你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。

    7.解释性

    这一点需要一些解释。一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。当你运行你的程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。事实上,由于你不再需要担心如何编译程序,如何确保连接转载正确的库等等,所有这一切使得使用Python更加简单。由于你只需要把你的Python程序拷贝到另外一台计算机上,它就可以工作了,这也使得你的Python程序更加易于移植。

    8.规范的代码

    Python采用强制缩进的方式使得代码具有极佳的可读性。

    9.Python既有动态脚本的特性,又有面向对象的特性。

    Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言如C++和Java相比,Python以一种非常强大又简单的方式实现面向对象编程。

    10.易于上手,难于精通。

    三、Python的缺点

    1. Python

      Python相对C、C++、Java语言确实慢很多,但其实这里所指的速度慢在大多数时候我们是无法感知的,比如说,是用C语言程序开发了一个程序,执行需要花0.01秒,使用Python实现同样功能的程序,需要花0.1秒的时间,虽然相差10倍,但是我们基本是感知不到的。更多的时候,程序慢是程序员实现功能方式导致的。其实在大多数情况下Python已经完全可以满足你对程序速度的要求,除非你要写对速度要求极高的搜索引擎等,这种情况下,当然还是建议你用C去实现的。

    2. 代码不能加密

      因为Python是解释性语言,它的源码都是以明文形式存放的,不过我不认为这算是一个缺点,如果你的项目要求源代码必须是加密的,那你一开始就不应该用Python去实现。

    3. 多线程支持不好

        线程不能利用多CPU问题,这是Python被人诟病最多的一个缺点,GIL即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。在Linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程的执行。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行。关于这个问题的折衷解决方法,我们在以后线程和进程章节里再进行详细探讨。

    当然,Python还有一些其它的小缺点,在这就不一一列举了。任何一门语言都不是完美的,都有擅长和不擅长做的事情,不要拿一个语言的劣势去跟另一个语言的优势来去比较,语言只是一个工具,是实现程序设计师思想的工具,就像我们之前中学学几何时,有的时候需要要圆规,有的时候需要用三角尺一样,拿相应的工具去做它最擅长的事才是正确的选择。

    四、Python擅长的领域

    Python几乎是万能的。

    1.web开发

    Django、pyramid、Tornado、Bottle、Flask、WebPy。

    Python经常被用于Web开发。比如,通过mod_wsgi模块,Apache可以运行用Python编写的Web程序。Python定义了WSGI标准应用接口来协调Http服务器与基于Python的Web程序之间的通信。

    全球第5大web框架的Django框架;

    支持异步高并发的Tornado框架;

    短小精悍的Flask、Bottle。

    2.网络编程

    Twisted、Requests、Scrapy、Paramiko。

    支持高并发的Twisted框架;py3引入的asyncio是异步编程变得简单。

    Python对于各种网络协议的支持很完善,因此经常被用于编写服务器软件、网络爬虫。第三方库Twisted支持异步网络编程和多数标准的网络协议(包含客户端和服务器),并且提供了多种工具,被广泛用于编写高性能的服务器软件。

    3.爬虫开发

    爬虫领域,Python几乎是霸主地位。Scrapy、Request、BeautifuSoap、Urllib等。

    4.人工智能

    各种人工智能算法都基于Python编写,尤其PyTorch之后,Python作为AI时代头牌语言的位置基本确立。

    5.金融分析

    Python是金融分析、量化交易领域里用的最多的语言。

    原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测。

    6.科学计算

    NumPy、SciPy、Matplotilb、Enthought librarys、Pandas、Ipython。

    随着NumPy等众多程序库的开发,Python越来越适合做科学计算,绘制高质量的2D和3D图像。和科学计算领域最流行的商业软件Matlab相比。Python是一门通用的程序设计语言,比Matlab所采用的脚本语言的应用范围更广泛。

    7.游戏开发

    很多游戏使用C++编写图形显示等高性能模块,而使用Python或者Lua编写游戏的逻辑、服务器。相较于Python,Lua的功能更简单、体积更小;而Python则支持更多的特性和数据类型。相比Lua or C++,Python比Lua有更高阶的抽象能力,可以用更少的代码描述游戏业务逻辑,与Lua相比,Python更适合作为一种Host语言,即程序的入口点是在Python那一端比较好,然后用C/C++在非常必要的时候写一些扩展。Python非常适合编写1万行以上的项目,而且能够很好地把网游项目的规模控制在10万行代码以内。

    8.GUI图形开发

    wxPython、PyQT、Kivy、Tkinter、PySide、PyGTK

    可以使用Tkinter/PyQT等框架开发各种桌面软件。

    9.自动化运维

    SaltStack(自动化/主机管理)、Ansible(自动化/主机管理)、腾讯蓝鲸。

    在很多操作系统里,Python是标准的系统组件。 大多数Linux发行版以及NetBSD、OpenBSD和Mac OS X都集成了Python,可以在终端下直接运行Python。有一些Linux发行版的安装器使用Python语言编写,比如Ubuntu的Ubiquity安装器,Red Hat Linux和Fedora的Anaconda安装器。Gentoo Linux使用Python来编写它的Portage包管理系统。Python标准库包含了多个调用操作系统功能的库。

     通过pywin32这个第三方软件 包,Python能够访问Windows的COM服务及其它Windows API。

    使用IronPython,Python程序能够直接调用.Net Framework。

    一般说来,Python编写的系统管理脚本在可读性、性能、代码重用度、扩展性几方面都优于普通的shell脚本。

    10. 云计算

    云计算最火的语言, 典型应用OpenStack。

    五、Python及编辑器的安装

    1.Python2 还是 Python3

    py2.7是2.x系列的最后一个版本,已经停止开发,不再增加新功能。2020年终止支持。所有的最新的标准库的更新改进,只会在3.x的版本里出现。龟叔决定清理Python2.x ,并且不再兼容旧版本。 最大的一个改变就是使用Unicode作为默认编码。Pyhton2.x中直接写中文会报错,Python3中可以直接写中文了。

    python3特性

      1.  默认支持中文

      Python2.x = 默认编码 =ASSIC =不支持中文

      Python3.x = 默认编码 =UNICODE =默认支持中文

      2. 不兼容2.x

      3. 核心语法调整,更易学

      4. 新特性默认只在3.x上有

    从开源项目看,支持py3的比例已经大大提高,知名的项目一般都支持py2.7和py3+。

    py3比py2更规范统一、去掉了没必要的关键字。Python3.x还在持续改进。

    所以推荐大家使用Python3.x。

    添加环境变量方法:

    至于怎么安装Python3,我想既然你要学习编程,这个就不用你就应该知道怎么安装软件,而且网上应该有很多安装教程。这里,我只提醒一点,就是如果你安装Python过程中没有选中path的话,该如何解决。下面是方法:

    我的电脑-右击“属性”-控制面板,选择“高级系统设置”-选择“环境变量”-“Path”-编辑

    在我看来,软件安装是基本中的基本。所以这个教程虽然是面向零基础的,但它依旧不会教你怎么安装软件,它只教你和编程有关的东西,即使这个东西很简单。

    2.编辑器安装

    初学者推荐Sublime Text3、Notepad++、PyCharm。

    我比较喜欢PyCharm,一是因为它功能强大,二是因为它对于Python文件的管理比较方便。

    3.执行py程序方式

    (1)交互器模式

    缺点:程序不能永久保存,主要用与简单的语法测试相关

     win10系统下,右击开始菜单 - 运行(R) - 输入“cmd” - 输入“python”,即可进入交互模式。如图,表示进入成功。

    在PyCharm中,进入方式如下:

    (2)文件执行 

    PyCharm中的执行方式:

    附:PyCharm快捷键

    1、Ctrl + Enter:在下方新建行但不移动光标;

    2、Shift + Enter:在下方新建行并移到新行行首;

    3、Ctrl + /:注释(取消注释)选择的行;

    4、Ctrl + Alt + L:格式化代码(与QQ锁定热键冲突,关闭QQ的热键);

    5、Ctrl + Shift + +:展开所有的代码块;

    6、Ctrl + Shift + -:收缩所有的代码块;

    7、Ctrl + Alt + I:自动缩进行;

    8、Alt + Enter:优化代码,添加包;

    9、Ctrl + Shift + F:高级查找;

    10、Alt + Shift + Q:更新代码到远程服务器;

    注:以上为本人学习Python时所记笔记,因参考资料较多,具体来源已不清楚。如有侵权,请私信告知。

     

  • 相关阅读:
    【PL/SQL】学习笔记 (9)例外之 no_data_found
    【PL/SQL】学习笔记 (8)光标之带参数的光标
    【PL/SQL】学习笔记 (7)光标的属性,一个会话中打开光标数的限制
    【PL/SQL】学习笔记 (6)光标使用的具体示例--emp表涨工资
    Gps定位和wifi定位和基站定位的比较
    多态
    类加载,类初始化及对象实例化
    http和https工具类 (要注意httpclient版本号和log4j的版本号)
    js贪吃蛇
    局部变量,成员变量,静态变量
  • 原文地址:https://www.cnblogs.com/salmond/p/8641379.html
Copyright © 2020-2023  润新知