zoukankan      html  css  js  c++  java
  • Python语言基础01-初识Python

     

    1. Python简介

    1.1 Python的历史

    Python的创始人为吉多·范罗苏姆(荷兰语:Guido van Rossum)

    1. 1989年的圣诞节期间:吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。之所以选中Python作为程序的名字,是因为他是BBC电视剧——蒙提·派森的飞行马戏团的爱好者。
    2. 1991年2月:第一个Python编译器(同时也是解释器)诞生,它是用C语言实现的(后面又出现了Java和C#实现的版本Jython和IronPython,以及PyPy、Brython、Pyston等其他实现),可以调用C语言的库函数。在最早的版本中,Python已经提供了对"类","函数","异常处理"等构造块的支持,同时提供了"列表"和"字典"等核心数据类型,同时支持以模块为基础来构造应用程序。
    3. 1994年1月:Python 1.0正式发布。
    4. 2000年10月16日:Python 2.0发布,增加了实现完整的垃圾回收,提供了对Unicode的支持。与此同时,Python的整个开发过程更加透明,社区对开发进度的影响逐渐扩大,生态圈开始慢慢形成。
    5. 2008年12月3日:Python 3.0发布,此版不完全兼容之前的Python源代码。不过因为目前还有不少公司在项目和运维中使用Python 2.x版本,很多新特性后来也被移植到旧的Python 2.6/2.7版本。

    此处借鉴于python维基百科:https://zh.wikipedia.org/wiki/Python

      

    1.2 Python的优缺点

    (1)Python的优点很多,简单的可以总结为以下几点。

    • 简单和明确,做一件事只有一种方法。
    • 学习曲线低,跟其他很多语言相比,Python更容易上手
    • 开放源代码,拥有强大的社区和生态圈。
    • 解释型语言,天生具有平台可移植性
    • 支持两种主流的编程范式(面向对象编程和函数式编程)都提供了支持。
    • 可扩展性和可嵌入性,可以调用C/C++代码,也可以在C/C++中调用Python。
    • 代码规范程度高,可读性强,适合有代码洁癖和强迫症的人群。

      

    (2)Python的缺点主要集中在以下几点。

    • 执行效率稍低,因此计算密集型任务可以由C/C++编写。
    • 代码无法加密,但是现在很多公司都不销售卖软件而是销售服务,这个问题会被淡化。
    • 在开发时可以选择的框架太多(如Web框架就有100多个),有选择的地方就有错误。

    此处借鉴于python官方文档:https://docs.python.org

      

    1.3 Python的应用领域

      目前Python在Web应用开发、云基础设施、DevOps、网络爬虫开发、数据分析挖掘、机器学习等领域都有着广泛的应用,因此也产生了Web后端开发、数据接口开发、自动化运维、自动化测试、科学计算和可视化、数据分析、量化交易、机器人开发、图像识别和处理等一系列的职位。

      

    2. 搭建编程环境

    2.1 Windows环境

    可以在Python官方网站下载到Python的Windows安装程序(exe文件),我下载的是python-3.7.3.exe版本,需要注意:

    • 如果在Windows 7环境下安装Python 3.x,需要先安装Service Pack 1补丁包(可以通过一些工具软件自动安装系统补丁的功能来安装);
    • 安装过程建议勾选"Add Python 3.7 to PATH"(将Python 3.6添加到PATH环境变量)并选择自定义安装;

    • 在设置"Optional Features"界面最好将"pip"、"tcl/tk"、"Python test suite"等项全部勾选上。

    • 高级配置选项,如图勾选即可;强烈建议使用自定义的安装路径并保证路径中没有中文

    • 安装完成会看到"Setup was successful"的提示。一定点击disable path length limit,禁用系统的Path长度自动限制,能给我们避免很多的麻烦。

    • 如果系统显示api-ms-win-crt*.dll文件缺失,直接在微软官网下载Visual C++ Redistributable for Visual Studio 2015文件进行修复;如果是因为更新Windows的DirectX之后导致某些动态链接库文件缺失问题,可以下载一个DirectX修复工具进行修复。

      

    2.2 Linux环境

      Linux环境自带了Python 2.x版本,但是如果要更新到3.x的版本,可以在Python的官方网站下载Python的源代码并通过源代码构建安装的方式进行安装,具体的步骤如下所示。

    (1)安装依赖库(因为没有这些依赖库可能在源代码构件安装时因为缺失底层依赖库而失败)。

    [root@python ~]# yum -y install wget gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel wget

    (2)下载Python源代码并解压缩到指定目录

    [root@python ~]# wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
    [root@python ~]# tar -xvf Python-3.7.3.tgz

    (3)切换至Python源代码目录并执行下面的命令进行配置和安装

    [root@python ~]# cd Python-3.7.3/
    [root@python Python-3.7.3]# ./configure --prefix=/usr/local/python37 --enable-optimizations
    [root@python Python-3.7.3]# make && make install

    (4)配置PATH环境变量并使其生效

    [root@python ~]# vim /etc/profile.d/python
    export PATH=$PATH:/usr/local/python37/bin
    [root@python ~]# source /etc/profile.d/python

    2.3 macOS环境

      macOS也自带了Python 2.x版本,可以通过Python的官方网站提供的安装文件(pkg文件)安装Python 3.x的版本。默认安装完成后,可以通过在终端执行python命令来启动2.x版本的Python解释器,可以通过执行python3命令来启动3.x版本的Python解释器。

      

    3. 从终端运行Python程序

    3.1 确认Python的版本

    (1)可以Windows的命令行提示符中键入下面的命令。

    python --version

     (2)或者是在Linux或macOS系统的终端中键入下面的命令。

    python3 --version

     (3)当然也可以先输入python或python3进入交互式环境,再执行以下的代码检查Python的版本。

    复制代码
    [root@python ~]# python3
    >>> import sys
    >>> print(sys.version_info)
    sys.version_info(major=3, minor=7, micro=3, releaselevel='final', serial=0)
    >>> print(sys.version)
    3.7.3 (default, Apr 26 2019, 14:42:46)
    [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]
    复制代码

    3.2 编写Python源代码

      可以用文本编辑工具(推荐使用Sublime、TextMate、Visual Studio Code等高级文本编辑工具)编写Python源代码并用py作为后缀名保存该文件,代码内容如下所示。

    print('hello world!')

    3.3 运行程序

    切换到源代码所在的目录并执行下面的命令,看看屏幕上是否输出了"hello, world!"。

    [root@python ~]# python hello.py
    hello world!

    [root@python ~]# python3 hello.py
    hello world!

       

    3.4 代码中的注释

      注释是编程语言的一个重要组成部分,用于在源代码中解释代码的作用从而增强程序的可读性和可维护性,当然也可以将源代码中不需要参与运行的代码段通过注释来去掉,这一点在调试程序的时候经常用到。注释在随源代码进入预处理器或编译时会被移除,不会在目标代码中保留也不会影响程序的执行结果。

    1. 单行注释:以 # 开头的部分
    2. 多行注释:三个引号开头,三个引号结尾

    (1)编写

    """ 第一个Python程序 - hello, world! 向伟大的Dennis M. Ritchie先生致敬 Version: 0.1 Author: 阿龙 """

    复制代码
    """
    第一个Python程序 - hello, world!
    向伟大的Dennis M. Ritchie先生致敬
    
    Version: 0.1
    Author: 阿龙
    """

    print('hello, world!') # print("你好,世界!") print('你好', '世界') print('hello', 'world', sep=', ', end='! ') print('goodbye, world', end='! ')
    复制代码

     (2)执行

    [root@python ~]# python3 hello.py
    hello, world!
    你好 世界
    hello, world!
    goodbye, world!

    4. 其他工具介绍

    4.1 IDLE - 自带的集成开发工具

      IDLE是安装Python环境时自带的集成开发工具,如下图所示。但是由于IDLE的用户体验并不是那么好所以很少在实际开发中被采用。

      

    4.2 IPython - 更好的交互式编程工具

      IPython是一种基于Python的交互式解释器。相较于原生的Python交互式环境,IPython提供了更为强大的编辑和交互功能。可以通过Python的包管理工具pip安装IPython和Jupyter,具体的操作如下所示。

    (1)安装

    pip install ipython

     或

    pip3 install ipython

     注:如果报错,加2个参数

    [root@python ~]# pip3 install --trusted-host pypi.org --trusted-host files.pythonhosted.org ipython

     原因:当前python版本是3.7,网上查找说是python高版本需要验证ssl

      

    (2)安装成功后,可以通过下面的ipython命令启动IPython,如下图所示。

    Tab键可以补齐

      

    4.3 Jupyter - 网页编程工具

    当然,我们也可以通过安装Jupyter工具并运行名为notebook的程序在浏览器窗口中进行交互式代码编写操作。

    (1)安装

    pip install jupyter

     或

    pip3 intall jupyter

       

    (2)然后执行下面的命令运行服务

    [root@python ~]# jupyter notebook --ip=192.168.200.101 --port=80 --allow-root

     注:

    • --ip:指定ip
    • --port:指定端口
    • --allow-root:如果是root权限执行需要此参数,绕过root权限,不建议以root身份运行

      

    (3)页面登录使用

    注:密码在服务启动时会打印在屏幕上

    注:可以选择编辑器

      

    4.4 Sublime - 文本编辑神器

    • 首先可以通过官方网站下载安装程序安装Sublime 3或Sublime 2。
    • 安装包管理工具。
      • 通过快捷键Ctrl+`或者在View菜单中选择Show Console打开控制台,输入下面的代码。
        • Sublime 3
          import  urllib.request,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();urllib.request.install_opener(urllib.request.build_opener(urllib.request.ProxyHandler()));open(os.path.join(ipp,pf),'wb').write(urllib.request.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read())
        • Sublime 2
          import  urllib2,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp)ifnotos.path.exists(ipp)elseNone;urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler()));open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read());print('Please restart Sublime Text to finish installation')
      • 手动安装浏览器输入 https://sublime.wbond.net/Package%20Control.sublime-package 下载这个文件,下载好以后,打开sublime text,选择菜单Preferences->Browse Packages... 打开安装目录此时会进入到一个叫做Packages的目录下,点击进入上一层目录Sublime Text3,在此目录下有一个文件夹叫做Installed Packages,把刚才下载的文件放到这里就可以了。然后重启sublime text3,观察Preferences菜单最下边是否有Package Settings 和Package Control两个选项,如果有,则代表安装成功了。
    • 安装插件。通过Preference菜单的Package Control或快捷键Ctrl+Shift+P打开命令面板,在面板中输入Install Package就可以找到安装插件的工具,然后再查找需要的插件。我们推荐大家安装以下几个插件:
      • SublimeCodeIntel - 代码自动补全工具插件。
      • Emmet - 前端开发代码模板插件。
      • Git - 版本控制工具插件。
      • Python PEP8 Autoformat - PEP8规范自动格式化插件。
      • ConvertToUTF8 - 将本地编码转换为UTF-8。

      

    4.5 Visual Studio Code - 轻量级但功能强大的源代码编辑器

    (1)安装

      

    (2)安装扩展

    ①汉化

    ② python环境

      

    (3)运行

      说明:事实上Visual Studio Code可能是更好的选择(我使用的是VS code,它不用花钱并提供了更为完整和强大的功能。

      

    4.6 PyCharm - Python开发神器

      PyCharm的安装、配置和使用稍后会编写一篇《玩转PyCharm》进行了介绍,有兴趣的读者可以选择阅读。

      

    5. 练习

    5.1 在Python交互环境中查看下面的代码结果,并试着将这些内容翻译成中文。

    import this 

      说明:当前键入上面的命令后会在交互式环境中看到如下所示的输出,这段内容被称为"Python之禅",里面讲述的道理不仅仅适用于Python,也适用于其他编程语言。

      

    5.2 学习使用turtle在屏幕上绘制图形。

      说明:turtle是Python内置的一个非常有趣的模块,特别适用于让小朋友体会什么是编程,它最早是Logo语言的一部分,Logo语言是Wally Feurzig和Seymour Papert在1966发明的编程语言.

    复制代码
    import turtle
    
    turtle.pensize(4)
    turtle.pencolor('red')
    turtle.forward(100)
    turtle.right(90)
    turtle.forward(100)
    turtle.right(90)
    turtle.forward(100)
    turtle.right(90)
    turtle.forward(100)
    turtle.mainloop()
    复制代码

     结果展示:

  • 相关阅读:
    SDL2 gif动态图加载
    js动态创建svg与use 使用iconfont symbol
    纯css3实现轮播图
    前端面试题
    移动端开发的兼容性问题
    JS高级(五)--ES6(Promise、async、类)
    JS高级(四)--ES6(常用的、重点的)
    JS高级(三)--原型链、闭包、作用域、函数的四种调用方式
    JS高级(二)--继承
    JS高级(一)--基础、数据类型、对象的基本使用、构造函数
  • 原文地址:https://www.cnblogs.com/dengbingbing/p/12200169.html
Copyright © 2011-2022 走看看