老夏学院

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 35329|回复: 46

【Python全栈系列课程(一)】Python基础入门

[复制链接]

304

主题

847

帖子

1082

G币

院长

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
1082

院长资深讲师

QQ
发表于 2019-12-19 21:07:39 | 显示全部楼层 |阅读模式
第一章 Python简介
    1.1 Python简介
第二章 Python开发环境
    2.1 Python解释器安装
    2.2 Python编辑器和IDE工具安装
第三章 基本语法
    3.1 变量、关键字和常量
    3.2 语法格式
    3.3 包和模块的定义与使用
第四章 编码规范
    4.1 命名规范
    4.2 注释规范
    4.3 导入规范
    4.4 代码排版
第五章 变量类型
    5.1 整型
    5.2 浮点型
    5.3 复数类型
    5.4 布尔型
    5.5 序列
    5.6 字符串
    5.7 列表
    5.8 元组
    5.9 字典
    5.10 集合
    5.11 对象
    5.12 None
第六章 变量转换
    6.1 变量类型测试
    6.2 int()函数
    6.3 float()函数
    6.4 bool()函数
    6.5 str()函数
    6.6 list()函数
    6.7 tuple()函数
    6.8 set()函数
    6.9 dict()函数
第七章 运算符
    7.1 数学运算符
    7.2 比较运算符
    7.3 逻辑运算符
    7.4 赋值运算符
    7.5 位运算符
    7.6 成员运算符
    7.7 引用运算符
    7.8 运算符优先级和结合性
第八章 语句
    8.1 条件控制语句
    8.2 循环语句
第九章 常用函数
    9.1 del()
    9.2 range()
    9.3 len()
    9.4 zip()
    9.5 enumerate()

304

主题

847

帖子

1082

G币

院长

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
1082

院长资深讲师

QQ
 楼主| 发表于 2020-4-8 15:37:11 | 显示全部楼层
第一章 Python简介
    1.1 Python简介

一、Python历史   
        Python是由荷兰人吉多·范·罗苏姆(Guido van Rossum)在1989年圣诞节期间,在阿姆斯特丹,为了打发圣诞节的无聊时间,决心开发的一门解释型程序语言。
        之所以取名为Python,那是因为吉多喜欢看英国电视秀节目蒙提·派森的飞行马戏团(Monty Python’s Flying Circus),于是他将这种新语言起名为Python(蟒蛇)。
        1991年第一个Python解释器公开版发布,它是用C语言编写实现的,并能够调用C语言的库文件,并且Python一诞生就已经具有了类、函数和异常处理等内容,包含字典、列表等核心数据结构。
        2000年Python2发布,Python2的最后一个版本是2.7,Python官方对于2.7版本的支持时间到2020年。
        2008年年底Python3发布,但Python3与Python2是不兼容的,并且由于很多Python程序和库都是基于Python2的,所以Python2和Python3的程序仍然会长期并存。不过,因为Python3的新功能吸引了很多开发人员,所以很多开发人员正从Python2升级到Python3,作为初学者如果想学习Python,建议从Python3开始。

二、Python设计哲学
        优美胜于丑陋;明了胜于晦涩;简洁胜于复杂;复杂胜于凌乱;扁平胜于嵌套;宽松胜于紧凑;可读性很重要;不要捕获所有错误,除非你确定需要这样做;如果存在多种可能,不要猜测,通常只有唯一一种是最佳的解决方案;命名空间非常有用,应当多加利用;即便是特例,也不可违背这些规则,虽然实现这些规则不容易,但是做总比不做要好,不假思索就动手还不如不做,因为如果你的方案很难懂,那肯定不是一个好方案,反之亦然。

三、Python特点
        免费开源;简单易学;高级语言;解释执行;可移值性;面向对象;嵌入性;可扩展性;丰富的类库。

四、Pyhton应用前景
(1)桌面应用开发
        Python语言可以开发传统的桌面应用程序,Tkinter、PyQt、PySide、wxPython和PyGTK等Python库可以快速开发桌面应用程序。
        参考课程:
【Python全栈系列课程(七)】Python桌面程序(GUI)开发【Python全栈系列课程(九)】实战案例:宠物商店【Python全栈系列课程(十)】实战案例:Python版QQ
(2)Web应用开发
        Python也经常被用于Web开发。很多网站都是基于Python Web开发的,如豆瓣、知乎等。Python具有很多成熟的Web框架,如Django、Flask、Tornado 、Bottle和web2py等,可以帮助开发人员快速开发Web应用。
        参考课程:【PythonWeb开发工程师(一)】Flask框架开发入门与实战【PythonWeb开发工程师(二)】Django框架开发入门与实战
(3)自动化运维
        Python可以编写服务器运维自动化脚本。服务器多数采用Linux和UNIX系统,以前很多运维人员通过编写系统管理Shell脚本实现运维工作。而现在使用Python编写系统管理,在可读性、性能、代码可重性、可扩展性等方面都优于普通Shell脚本。
(4)科学计算
        Python语言也广泛地应用于科学计算,NumPy、SciPy和Pandas是优秀的数值计算和科学计算库。        
        参考课程:
【Python数据分析师(二)】NumPy科学计算库【Python数据分析师(三)】Pandas数据分析库
(5)数据可视化
        Python语言也可将复杂的数据通过图表展示出来,便于数据分析。
        参考课程:【Python数据分析师(四)】Matplotlib数据可视化库【Python数据分析师(五)】Seaborn数据可视化库【Python数据分析师(六)】企业案例:二手房数据分析展示
(6)网络爬虫
        Python语言很早就用来编写网络爬虫,谷歌等搜索引擎公司都在大量地使用Python语言编写网络爬虫。从技术层面上讲Python语言有很多这方面的工具,urllib、Selenium和BeautifulSoup等,还包括网络爬虫框架scrapy。
        参考课程:【Python数据分析师(一)】Python爬虫从入门到精通
(7)人工智能
        人工智能是现在非常火的一个方向。Python广泛应用于深度学习、机器学习和自然语言处理等方向。由于Python语言的动态特点,很多人工智能框架是采用Python语言实现的。
(8)大数据
        大数据分析中涉及到的分布式计算、数据可视化、数据库操作等,Python中都有成熟库可以完成这些工作。Hadoop和Spark都可以直接使用Python编写计算逻辑。
(9)游戏开发
        Python可以直接调用Open GL实现3D绘制,这是高性能游戏引擎的技术基础。Python语言有很多实现游戏的引擎,如Pygame、Pyglet和Cocos2d等。
        参考课程:【Python全栈系列课程(八)】Python游戏开发【Python全栈系列课程(十一)】实战案例:飞机大战LostWar

304

主题

847

帖子

1082

G币

院长

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
1082

院长资深讲师

QQ
 楼主| 发表于 2020-4-8 15:43:36 | 显示全部楼层
第二章 Python开发环境
    2.1 Python解释器安装


        我们可以在Python官方网站下载最新版的Python,然后进行安装,安装完毕之后就可以通过DOS、IDLE运行,如果无法正常运行,需要在系统环境变量中添加Python的安装路径(如D:\Python37)即可。
        Python有四种解释器,包括:
(1)CPython
        CPython为Python官方提供,一般情况下提到的Python就是指CPython,CPython是基于C语言编写的,其解释器能够将源代码编译为字节码(Bytecode),类似于Java语言,然后再由虚拟机执行,这样当再次执行相同源代码文件时,如果源代码文件没有修改过,那么它会直接解释执行字节码文件,这样会提高程序的运行速度。
(2)PyPy
        PyPy是基于Python编写的Python编译环境,因为其采用类似Java的即时编译技术,因此速度要比CPython快,但兼容性不如CPython。
(3)Jython
        Jython是基于Java编写的Python环境,可以将Python代码编译为Java字节码,可以在Java虚拟机下运行。
(4)IronPython
        IronPython是基于.NET平台实现的Python环境,可以兼容.NET Framework链接库。   

304

主题

847

帖子

1082

G币

院长

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
1082

院长资深讲师

QQ
 楼主| 发表于 2020-4-8 16:02:27 | 显示全部楼层
第二章 Python开发环境
    2.2 Python编辑器和IDE工具安装

一、Sublime Text编辑器安装
        Sublime Text编辑器的详细安装过程,大家可以查阅【编程工具系列课程(一)】Sublime Text2编辑器进行学习,在这里不进行过多的讲解。
        安装完Sublime Text编辑器之后,大家注意以下几点问题:
(1)如何解析Python代码
        通过使用快捷键Ctrl+b来解析Python代码。
(2)如何解决输出中文字符出现bug的问题
        依次打开【首选项】->【浏览器程序包】->【Python】->【Python.sublime-build】,然后在该文件内加入【"encoding" : "cp936"】即可。
(3)如何安装SublimeREPL插件
        将SublimeREPL插件拷贝至浏览程序包内,然后点击工具就可以看到SublimeREPL。点击【工具】->【python】->【python】,就可以进入Python IDLE模式,如果点击【工具】->【shell】则可以进入DOS环境。

二、PyCharm安装
        PyCharm共有两个版本,即专业版和社区版,我们以社区版为例进行介绍,具体步骤如下:
(1)选择【Do not import settings】
(2)选择【accept】
(3)选择界面风格,然后点击【Next:Featured plugins】
(4)选择【start using PyCharm】
(5)选择【create new project】
(6)选择项目创建的位置,注意,此时的项目解析器有两个选项,一个是新创建解析器,另一个是选择已经存在的解析器,我们选择第二个,并在里面选择【system Interpreter】即可。
        在这里解释一下pycharm中的三个编译环境:
(1)Virtuallenv Environment,即虚拟编译环境,为了便于在Python2和Python3之间进行切换。
(2)Conda Environment,Conda是一个开源的软件包管理系统和环境管理系统。安装Conda一般是通过安装Anaconda实现的,Anaconda是一个Python语言的免费增值发行版,用于进行大规模数据处理、预测分析和科学计算,致力于简化包的管理和部署。
(3)System Interpreter,系统自带的解释器。

304

主题

847

帖子

1082

G币

院长

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
1082

院长资深讲师

QQ
 楼主| 发表于 2020-4-10 09:54:00 | 显示全部楼层
第三章 基本语法
    3.1 变量、关键字和常量


一、变量
        Python中的变量区分大小写,如【Myname】与【myname】是两个不同的变量名。

        Python中变量名的首字符只能是下划线或字母,不可以是数字等其他字符;首字符以外的其他字符,可以是下划线、字母和数字。注意,关键字和内置函数不能作为变量名。
        例如,身高、identifier、userName、User_Name、_sys_val等均为合法的标识符,注意中文【身高】命名的变量是合法的,而2mail、room#、$Name和class则为非法的标识符,因为#和$不能构成标识符。

二、关键字
        Python语言中有33个关键字,其中只有False、None和True首字母大写,其他的全部小写。
FalseTrueNonedefifraisedel
importreturnelifintryandelse
iswhileasexceptlambdawithassert
finallynonlocalyieldbreakfornotclass
fromorcontinueglobalpass

三、常量
        Python中不能定义真正意义的常量,但是我们约定大写字母命名的变量就是常量,如MAX、MIN等。

304

主题

847

帖子

1082

G币

院长

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
1082

院长资深讲师

QQ
 楼主| 发表于 2020-4-10 10:02:13 | 显示全部楼层
第三章 基本语法
    3.3 包和模块的定义与使用


        含有【__init__.py】文件的目录就是包,包里面的Python文件就是模块。
        一个模块就是一个文件,模块是保存代码的最小单位,模块中可以声明变量、常量、函数、属性和类等Python程序元素。
        
不管你执行了多少次导入,一个模块只会被导入一次,这样可以有效防止导入模块被多次执行。
        导入模块有两种方式,分别为【import】语句和【from...import】语句。
(1)import语句

  1. # 主程序文件
  2. # 起别名
  3. import pack.index as pi
  4. pi.myfunc()
复制代码
  1. # 包中的模块文件
  2. def myfunc():
  3.     print('hello python')
复制代码
(2)from...import语句
  1. # 主程序文件
  2. from pack.index import myfunc
  3. myfunc()
复制代码
  1. # 包中的模块文件
  2. def myfunc():
  3.     print('hello python')
复制代码
        那么,当我们使用import语句的时候,Python解释器是如何找到对应的文件呢?
        这就涉及到Python的搜索路径,搜索路径是由一系列目录名组成的,Python解释器就依次从这些目录中去寻找所引入的模块。上述方式看起来很像环境变量,事实上,也可以通过定义环境变量的方式来确定搜索路径,搜索路径是在Python编译或安装时确定的。
        搜索路径被存储在sys模块中的path变量,可以通过sys.path查看。
  1. import sys
  2. print(sys.path)
复制代码
        临时添加或删除模块路径,可以使用如下方式:
  1. import sys
  2. # 添加一个路径
  3. sys.path.append('oldxia')
  4. # 添加多个路径
  5. sys.path+=['oldxia1','oldxia2']
  6. # 删除路径
  7. sys.path.remove('oldxia')
  8. print(sys.path)
复制代码
        永久添加模块路径,只需要在Lib\site-packages目录下创建一个.pth文件,并在文件中写明路径(如f:\oldxia)即可,注意该路径必须实际存在。

304

主题

847

帖子

1082

G币

院长

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
1082

院长资深讲师

QQ
 楼主| 发表于 2020-4-10 10:06:52 | 显示全部楼层
第三章 基本语法
    3.2 语法格式

        一行代码表示一条语句,语句结束可以加分号,也可以省略分号(建议此种方式)。
  1. a=10
  2. b=10
  3. c=10
复制代码
        多个变量赋相同的数值,可以这样表示:
  1. a=b=c=10
复制代码

304

主题

847

帖子

1082

G币

院长

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
1082

院长资深讲师

QQ
 楼主| 发表于 2020-4-10 10:11:03 | 显示全部楼层
第四章 编码规范
    4.1 命名规范

(1)变量
        要求使用小写字母,如果是多个单词构成,可以使用下划线分隔;如果变量应用于模块或函数内部,则变量名可以使用单下划线开头;如果变量在类内部是私有变量,则需要使用双下划线开头;另外,避免使用小写L、大写O和大写I作为变量名。
(2)常量
        要求使用大写字母,如果是由多个单词构成,可以使用下划线分隔,例如:【YEAR】【WEEK_OF_MONTH】。
(3)包
        要求使用小写字母,推荐使用点进行分隔,不推荐使用下划线进行分隔。另外,作为命名空间,包名应该具有唯一性,推荐采用公司或组织域名的倒置,例如:【com.oldxia.app.v1】。
(4)模块
        要求使用小写字母,如果是由多个单词构成,可以使用下划线分隔,例如:【dummy_threading】。
(5)函数和方法
        第一种方式:使用驼峰命名法,例如:【indexUserPerson】;第二种方式:命名方式同变量命名,例如:【balance_account】【_push_cm_exit】。
(6)类
        要求使用帕斯卡命名法,例如:【IndexUserPerson】。
(7)对象
        要求使用小写字母。
(8)异常
        异常属于类,命名方式同类命名,但应该使用Error作为后缀,例如:【FileNotFoundError】。

304

主题

847

帖子

1082

G币

院长

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
1082

院长资深讲师

QQ
 楼主| 发表于 2020-4-10 10:18:30 | 显示全部楼层
第四章 编码规范
    4.2 注释规范

        在讲注释规范前,需要强调一点,即在程序代码中,对容易引起误解的代码进行注释是必要的,但应避免对已经清晰表达信息的代码进行注释。需要注意的是,频繁的注释有时反映了代码的低质量,当觉得被迫需要添加注释的时候,不妨考虑一下重写代码,使其更加清晰。

一、文件注释
        文件注释就是在每一个文件的开头添加注释,采用多行注释,注意,文件注释不会生成API帮助文档。文件注释通常包括如下信息:版权信息、文件名、所在模块、作者信息、历史版本信息、文件内容和作用等。
  1. # 版权所有 2012 老夏学院 www.oldxia.com
  2. # 许可信息查看LICENSE.txt文件
  3. # 描述:
  4. # 实现日期基本功能
  5. # 历史版本:
  6. # 2017-7-22: 创建 夏正东
  7. # 2017-8-20: 添加socket库
  8. # 2017-8-22: 添加math库
复制代码

二、文档注释
        文档注释就是文档字符串,注释内容能够生成API帮助文档,可以使用Python官方提供的pydoc工具从Python源代码文件中提取信息这些信息,也可以生成HTML文件。所有公有的模块、函数、类和方法都应该进行文档注释。文档注释推荐使用一对三重双引号包裹起来,不推荐使用三重单引号。
  1. # 标准文档注释格式,源自于base64.py
  2. """Decode the Base64 encoded bytes-like object or ASCII string s.

  3. Optional altchars must be a bytes-like object or ASCII string of length 2
  4. which specifies the alternative alphabet used instead of the '+' and '/'
  5. characters.

  6. The result is returned as a bytes object.  A binascii.Error is raised if
  7. s is incorrectly padded.

  8. If validate is False (the default), characters that are neither in the
  9. normal base-64 alphabet nor the alternative alphabet are discarded prior
  10. to the padding check.  If validate is True, these non-alphabet characters
  11. in the input result in a binascii.Error.
  12. """
复制代码

三、代码注释
        使用#号,可放在代码右侧或者上方。
  1. # 定义变量,教师名称
  2. teacher='老夏'
复制代码

四、TODO注释
        有些程序的功能暂时不能确定,或者未完成,就可以使用TODO注释。该注释可以通过使用IDE工具(如PyCharm)进行查看。
  1. # TODO 数据库尚未连接
复制代码

五、编码注释
(1)第一种方式
  1. # coding=utf-8   # 注意#号后有空格
复制代码
(2)第二种方式
  1. #!/usr/bin/python    # linux下加该注释
  2. # -*- coding: utf-8 -*-  # 注意#号后有空格
复制代码

304

主题

847

帖子

1082

G币

院长

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
1082

院长资深讲师

QQ
 楼主| 发表于 2020-4-10 10:29:58 | 显示全部楼层
第四章 编码规范
    4.3 导入规范

        导入语句总是放在文件的顶部,位于文件注释和文档注释之后,全局变量和常量之前。推荐每一个导入语句导入一个模块,我们可以通过使用PyCharm中的【Code】->【Optimize Imports】进行格式化。
  1. # 推荐
  2. import re
  3. import struct
  4. import binascii
  5. # 不推荐
  6. import re, struct, binascii
复制代码
        注意,导入语句应该按照从通用到特殊的顺序分组,顺序是:标准库->第三方库->自定义模块,每一组之间有一个空行,而且组中的模块是按照英文字典顺序排序的。
  1. import io
  2. import os
  3. import pkgutil
  4. import platform
  5. import re
  6. import sys
  7. import time

  8. from html import unescape

  9. from com.oldxia import example  
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|老夏学院 ( 辽ICP备19020546号-1 )

GMT+8, 2024-5-18 13:47 , Processed in 1.078056 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020.

快速回复 返回顶部 返回列表