美文网首页胶水PythonPython小推车
Python基础2: 基础知识和使用

Python基础2: 基础知识和使用

作者: 爱折腾的大懒猪 | 来源:发表于2018-12-19 09:37 被阅读45次
    • 什么是python
    • Python学习资料
    • Python的使用
    • pip, IPython, Jupyter

    什么是Python

    Python是一门简单而功能强大的编程语言,常用于日常工作脚本编写、网站搭建、简单程序开发等等。Python有以下特点:

    1. 语言简单。Python的语法十分便于人的理解,即使一段时间没有使用,你也不会忘记。
    2. 功能强大。Python语言自诞生起一直活跃于IT界和学术界当中,其基础语法虽然简单,但具有相当丰富的标准库和扩展库,使得其功能十分强大!无论是数据分析处理、大数据和机器学习、网站构建等,他都活跃在一线。作为现代化语言,Python是支持面向对象的语言(额,面向对象是啥?)。
    3. 解释性语言。Python作为一门脚本语言,可以进行动态的输入和交互,这便于用户边写边调试!
    4. 免费开源。作为十分强大的工具,Python是开源免费试用的!源代码是开放的!
    5. 可移植性。Python由于开源的特性,被广泛移植到各种平台中。你所编写的程序很多时候不需修改就能在各种系统中运行(Window、Linux、Mac、Android甚至你的游戏机。)

    Python由于语言简易,扩展库丰富,尤其适用于快速的应用程序开发,对于日常文件快速处理、小型功能程序等都等都属于首选语言。现在很多流行的机器学习和大数据的方法都使用了Python作为语言, 随着所谓大数据和AI变热, Python成为了极度popular的语言.

    但Python不是无敌的。Python作为解释性语言,其运行速度相对C/C++等编译性编程语言要慢。因此,作为大型程序(运算量大,处理数据极多等情况也是)开发时,Python并不合适(例如王者荣耀就不能用Python开发啦,但王者荣耀的数据分析就可以用Python进行分析)。很多计算量大的方法在python使用时实际是应用c/c++进行底层编译后的库, python只是强大的胶水, 沟通底层库和人们的日常操作.

    Python的中文意思是蟒蛇,所以可以看到其很多图标是蛇~

    解释性语言我们也常叫脚本语言。
    在C/C++等编译性语言中,需要先将源代码(我们写的代码)编译为计算机语言(就是二进制代码,我们平时双击的exe可执行文件就是经过编译后的文件)。当我们每次修改源代码,想测试一下,均需要对源代码进行编译,再测试,这就比较麻烦了。而且编译经常出错哦!
    但是Python这类解释性语言,并不需要经过编译为二进制代码一步。你可以直接从源代码直接运行程序,这就十分方便你运行调试和移植程序了!

    Python流行的有两个大版本:2.X和3.X,在很多系统中(如Mac和Linux)均自带Python2.X,但较新版本3.X功能更强大,而且在不停发展。2.X和3.X有一定的语法区别,这里使用旧版的2.X的(因为我没有仔细去学过3.X~~),有兴趣可以去看看2.X和3.X区别再进一步学习3.X版本。

    Python 2.7.x 和 3.x 版本的重要区别
    知乎:Python 2 和 Python 3 有哪些主要区别?

    Python的学习资料

    Python的入门书籍有很多, 进阶和扩展的就更多了. 纷繁的入门书籍其实都差不多, 有讲故事一样慢慢讲的 (适合无编程基础新手), 有从语法细节分析展开的 (适合有编程基础, 转学python). 看了很多书, 最适合新手入门的是《简明Python教程》,该书原英文版为由 Swaroop C H 编写的《A Byte of Python》,被广泛用于美国大学的Python入门。。

    《简明Python教程》是真的简, 有心思看的话一天就能看完, 毫无编程基础的估计一周也能掌握好. 看完《简明Python教程》掌握了基础后可以选择其他入门书籍进行进一步的学习,例如《Python基础教程》、Python编程:从入门到实践深入 Python :Dive Into Python 中文版等。参数书中带有《Python参考手册》, 这是本不错的查阅参考书。
    更多的教程, 可以参考知乎: Python教程

    官方参考资料和文档也是不错的学习资料, 适合查阅和深入学习:

    非官方的参考手册还有: 在线手册中心, 收集整理了大量 Python 流行技术文档和教程.

    Python入门网上教程

    这里有些网站可以去学习和使用:

    其实资料很多, 对于入门, 看熟简明基础教程, 再上机多练习就足够了!
    随后, 可以找一个详细一点的教程进行深入点的学习!
    有很多知识点, 是要在实践中慢慢掌握的!

    python的使用

    在上一篇 Python基础1: 安装程序与环境 中已经介绍了基础的Python安装和调用 (包括安装Shell以及编辑器), 应该了解到运行Python有两种基本模式: 交互模式源文件运行, 在基于ipython的Jupyter的帮助下, 还可以实现代码块运行以及网页应用运行, 这些都是后话了.

    • 交互模式 : 在命令行执行python命令就会进入交互模式, 输入代码回车获得结果. IDLE打开的默认模式也是交互模式, 适合于简单的调试. 使用ipython可以获得更好的交互模式体验, 包括补全、查询等等。
    • 源文件运行 : 在命令行执行python 源文件.py 就可以执行源文件的内容. 这个被执行的源文件也可叫主程序, 他可以调用其他的包和模块(其他py文件)来实现更为复杂的功能. 在IDLE内新建或打开源文件, 然后输入代码, 保存文件后, 在菜单RunRun Module (或按F5) 就可以执行源文件, 结果输出在交互界面的输出处. 注意这种方式运行源文件会重启IDLE的shell, 之前保存的变量等会被清空.
    IDLE运行源文件
    • IDLE还有很多功能, 例如支持补全, 调用提示, 回顾命令, Debug模式, 堆栈查看, 类查看, 内容查找,模块运行,重启shell等等. 但不建议过多学习其使用, 因为你最后都会选择别的工具代替他.
    • 使用IDLE进行交互要比直接python命令要强大, 例如支持按tab键补全输入, 而python命令进入交互则不支持. ipython支持补全, 还有更方便的查看历史(IDLE需要alt+p/n). 如果只是简单的交互命令, ipython > IDLE > python.
    • 如果运行一段代码, Jupyter Notebook或类似IDE(Spyder或VS Code)是不错的选择; ipython也可以, 但不太好改内容; idle更弱, 或者需要新建文件来运行.
    • 如果测试源文件, IDE是不错的选择(包括VS Code, IDLE等), 直接用命令行来测试也是可以的python 源文件.pyipython 源文件.py. 但如果输出为图片, 则VS Code, Spyder等使用Jupyter效果更佳.
    • 如果输出为图片查看, 基于Jupyter的效果会更佳 (如Notebook, VSCode, Spyder, IPython QTconsole等), IDLE无法显示, 命令行(python/ipython)也无法显示.
    Jupyter直接显示Matplotlib图片结果

    pip, ipython, jupyter

    上面提到了多次ipythonJupyter, 这里就介绍安装和简单的使用. 更复习的使用需要另外的资料. 先介绍pip, ipython, jupyter分别是什么.

    • pip : 库自动安装工具. python附带的一个工具, 在命令行下执行, 可以实现模块的安装与卸载. 十分重要的工具. python之所以强大, 是因为有很多工具(武器), 而这些工具哪里来的呢? 一般需要额外安装. 手动安装太麻烦了, python社区提供了PyPI 这个工具库, 里面有大量开发者上传的模块可供使用. 而pip则是帮助你从这个库中进行检索和安装的工具.
    • IPython :基于python的增强的交互式解释器, 提供比原python交互模式更强大的功能, 如shell交互命令,?用法, 自动补全等. 有了ipython, 谁用python啊. ipython还提供复杂的并行与分配计算结构, 使用jupyter内核与其他应用进行通信交互.
    • Jupyter : Jupyter原来是IPython项目的一部分, 名字起源于早期支持的三种核心语言Julia, Python, R. 后来抽离出来作为更大的项目, 支持几十种语言环境, 其核心是通过一个内核运行解释器, 并用该核心和多个前端(其他应用)进行通信, 增强了交互性和并行性. 现在Jupyter更多地用于指代这个核心.
      • Jupyter Notebook是一个Web应用的交互式笔记本, 基于Jupyter核心, 之前也叫ipython notebook, 现已基本用前者.
      • JupyterLab是Notebook的下一代产品, 功能比Notebook更强大. 现仍处于beta版. 主要支持多窗口, 支持拖动Cell, 支持打开py文件.
      • Jupyter QtConsole是IPython的交互模式控制台, 使用交互命令和基于QT的图形界面, 类似于IPython+IDLE的结合, 支持显示图片. 一般很少用.

    pip的安装

    在默认情况下, pip已被安装 (Python 2.7.9 + 或 Python 3.4+ 以上版本都自带 pip 工具)。在命令行输入pip -V可以查看版本(pip不能运行但python能运行时, 可以尝试python -m pip -V, 如果依然不能查看pip版本号, 那么可能pip没有安装或者C:\Python27\Scripts没有加入到搜索路径(环境变量Path).

    • 从头安装pip: 下载https://bootstrap.pypa.io/get-pip.py, 然后python get-pip.py即可. (ubuntu系统可以sudo apt-get install python-pip).
    • py2和3对应的是pip2和pip3, 而pip则对应机器上默认的python版本(2或3).
    • 安装包: 使用pip install 包名来自动搜索并安装python包.
    pip install SomePackage              # 最新版本
    pip install SomePackage==1.0.4       # 指定版本
    pip install 'SomePackage>=1.0.4'     # 最小版本
    
    • 搜索包: 使用pip search SomePackage搜索包, 可以输入包名部分内容, 找到合适的包后再安装.
    • 升级包: pip install --upgrade SomePackage
    • 卸载包: pip uninstall SomePackage
    • 升级pip自身 : pip install -U pippython -m pip install -U pipeasy_install --upgrade pip
    • 其他功能: 显示安装包信息用pip show (指定包使用pip show -f SomePackage, 列出已安装包用pip list, 查看可升级的包用pip list -o, 查看pip版本用pip -vpip --version.

    试一试: 安装几个常用的基础包: numpy, scipy, pandas, matplotlib

    ipython和jupyter的安装

    ## 安装ipython和jupyter, 中间空格隔开可以同时装多个包
    pip install ipython jupyter
    ## 待下载安装完成......
    
    ## 测试ipython, 输入exit或者按 ctrl+C 退出交互模式
    ipython
    ## 测试jupyter notebook
    jupyter notebook
    ## 如果没有在浏览器弹出notebook, 请在浏览器输入以下网址:
    ## localhost:8888
    ## 8888是使用的端口, 在多次使用notebook时端口号会递增, 根据实际情况调用
    
    运行ipython

    成功运行ipython后界面如上所述. ipython究竟有什么好呢? 可以在里面输入几个print "Hello World",a=123*456之类的命令.

    调用提示
    • ,键可以翻看之前输出过的历史命令, 方便回溯和修改;
    • 先输入pr, 然后按Tab键, 会自动补出print. 这叫命令补全, 加速输入.
    • 如上面的图,建立变量a="Hi",随后输入a.再按tab, 列出一大堆可选的方法(可用上下左右键选择), 这种功能叫调用提示. 这些列出来的东西其实是变量a的属性方法(相当于其所拥有的工具箱).
    • 输入a?, (如果存在a), 可以看到关于a的帮助.
    • 输入%magic, 可以看到魔法命令介绍. 具体是啥, 不需理会..入门时很少用.

    好了, 以后使用 命令行+ipython 代替IDLE进行交互吧!


    运行Jupyter Notebook

    运行Notebook可以使用jupyter notebook, 也可以使用jupyter-notebook. 成功打开后如下图, 并会自动打开浏览器转入到notebook. Window安装的话没有jupyterlab (可以使用Anaconda来安装吧). Notebook的使用以后再介绍了.

    运行Jupyter Notebook

    注意 : Windows里需要Shift+右键打开命令行窗口(dos窗口), 再输入该命令. 经测试使用 Git for Windows运行会报错如下, 同编码有关.

      File "c:\python27\lib\site-packages\traitlets\config\application.py", line 377, in   print_subcommands
          print(os.linesep.join(lines))
      UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 4: ordinal not in range(128)
    
    Jupyter Notebook

    在浏览器可以看到Notebook类似于上图. 其中一个框内可以输入多行代码, 按Ctrl+Enter或按上面的Run来运行一段代码. 这种输入一段代码的框称为Cell, Cell是运行代码块的单元. 按+号可以添加多个Cell. 更多Notebook的使用请自行探索或参看别的教程.

    试一试 : 如果安装了matplotlib模块, 可以试试输入以下代码运行:

    import matplotlib.pyplot as plt
    %matplotlib inline
    plt.plot([1,2,3,4])
    plt.show() # show figure
    

    总结

    • python是易学而强大的脚本语言.
    • python有两种主要运行模式: 交互模式和源文件运行模式.
    • 了解IDLE的使用
    • 了解pip的使用
    • 学会使用ipython进行交互模式操作, 熟练使用: 历史回顾, 命令补全, 调用提示功能.
    • 学会打开Jupyter Notebook, 并学会使用Cell来调试代码块.

    相关文章

      网友评论

        本文标题:Python基础2: 基础知识和使用

        本文链接:https://www.haomeiwen.com/subject/ucgfkqtx.html