1.python是什么

    ->pyhton是一种解释器
    ->python是一种解释型编程语言

2.Python的发展历史

    python是由Guido van Rossum(吉多·范罗苏姆/人称龟叔)在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的。
    python本身也是由诸多其他语言发展而来的,这包括ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell和其他脚本语言等等。
    python源代码同样遵循GPL(GNU General Public License)协议。
    现在的python是由一个核心开发团队在维护,Guido Van Rossum仍然占据着至关重要的作用,指导其发展。
    python2.7被确定为最后一个python2.x版本,它除了支持Python2.x语法外,还支持部分python3.1语法。
    官方宣布,2020年1月1日,停止Python 2的更新。
    
    Python 2.0于2000年10月16日发布,增加了实现完整的垃圾回收,并且支持 Unicode。
    Python 3.0于2008年12月3日发布,此版不完全兼容之前的 Python源代码。不过,很多新特性后来也被移植到旧的Python 2.6/2.7版本。
    Python 3.0版本,常被称为Python 3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。

3.python特点

    >易于学习:python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
    >易于阅读:python代码定义的更清晰。
    >易于维护:python的成功在于它的源代码是相当容易维护的。
    >一个广泛的标准库:python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。
    >互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片段。
    >可移植:基于其开放源代码的特性,python已经被移植(也就是使其工作)到许多平台。
    >可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,
             然后从你的python程序中调用。
    >数据库:python提供所有主要的商业数据库的接口。
    >GUI编程:python支持GUI可以创建和移植到许多系统调用。
    >可嵌入:可以将python嵌入到C/C++程序,让你的程序的用户获得“脚本化”的能力。

4.python的应用

    ->测试脚本(测试+运维)
    ->C++/Java(在此类工作中都会涉及到python)
    ->人工智能
        ->大数据、数据挖掘
        ->凡是跟人工智能相关的岗位都会涉及到python

5.python开发环境的搭建

    ->解释器
        python解释器现阶段分为两个版本:
            python2         最后一个版本 python2.7             一些古老的项目有用到
            python3         目前的主流版本                     一般人工智能接口只支持python3
        解释器安装:
            python 3.6.2
                ->安装路径:纯英文
                ->安装插件:
                        tk(tkinter)(GUI编程要用的包)
                        pip(第三方库的安装,卸载,查看的管理工具)

                ->add path(添加环境变量)
                ->install for all users(安装的python所有用户都能使用)

    ->编辑器
      能够编辑文件的编辑器就行
            notepad
            notepad++
            Sublime Text
            VS code:下载相应的python插件,即可进行脚本的编程和运行(推荐)

->python解释器的使用:
    打开终端(win键+R----->输入cmd),只要将python的路径配进环境变量PATH中,在任意目录下都能执行python解释器

    python 回车:
        打开python解释器,打开之后就可以输入python语句,输入一行,解释一行
        退出:exit()

    python中变量定义前面没有指定数据类型,数据类型由存储的数据决定。
    而python中是存在数据类型的

    如何查看python中变量的数据类型:
        type(变量名)

    python中的输入输出函数:
        print():格式化输出
        input():输入,输入的数据都是字符串

    然而,我们真正的使用时,并不是一行一行的输入,一行一行的解释
    大多数情况,为了避免重复的输入相同的python语句,我们可以将语句按照一定的逻辑写入一个文件,
    让python解释器去解释该文件,并且文件的复用性较强。
    我们把这样的文件称之为python脚本

6.python脚本的编写和解释

    ->如何创建python脚本
        打开一个编辑器,然后输入python语句,将文件存为以.py结尾的文件,就可以了。
    ->如何运行python脚本
        python 带路径的脚本名

        例如:python myf.py

->VS Code编辑器
    离线配置python插件
        extensions
            --------> ...
                        --------->Install From VSIX...

    使用VS Code:
        ->VS Code 一般当作一个工作站使用
            ->在自己文件系统中新建一个文件夹,作为自己的工作栈
            ->使用VS Code打开文件夹
                ->File--->open Folder...
            ->然后在Explore中就能看到自己打开的文件夹
                新建文件 New File
                新建文件夹 New Floder

        ->如何运行python脚本
            ->需要安装python插件
            ->选中该文件,右击,run python file in terminal

        ->想要重名/其他对于文件的移动,拷贝等操作
            ->选中文件右击去选择

图形化样例:

'''
        from 包所在的位置 import 包名:这是python中导包的格式,类似于C语言中的导入库
        tkinter:存储GUI包的文件夹
    '''
    from tkinter import *

    #创建一个Tk()对象,名字叫root,Tk()就是一个窗体
    root = Tk()
    #设置窗体的标题
    root.title("我的第一个python脚本")
    """
        geometry:这个方法是设置窗体的大小
        参数:是字符串类型("宽x高")
    """
    root.geometry("400x300")
    """
        Lable:是标签控件
            text:是Lable标签的一个属性,用来设置Label显示的文本内容
            bg:是Lable标签的一个属性,用来设置Label标签的背景颜色
                都是字符串类型
                    可以是枚举的颜色字符串
                    可以是16进制的RGB颜色编码
    """
    lb1 = Label(text="hello", bg="#a0cf00")
    lb = Label(text="欢迎来到python世界",bg="blue")
    #默认居中显示控件
    lb1.pack()
    '''
        place:设置控件在窗体中位置,以及控件的大小
            参数:
                relx:显示的起始位置的x轴坐标(相对于窗体宽度的比例)
                rely:显示的起始位置的y轴坐标(相对于窗体高度的比例)
                relwidth:控件的宽度(相对于窗体宽的比例)
                relheight:控件的高度(相对于窗体高的比例)    
    '''
    lb.place(relx=0.01,rely=0.3,relwidth=0.4,relheight=0.1)
    root.mainloop()#实现窗体永驻

7.python语法

    python中的注释:
        单行注释:
            #注释内容
        多行注释:
            '''
                注释内容
                xxxxxxxx
                xxxxxxxx
            '''

            或者:
            """
                注释内容
                xxxxxxxx
                xxxxxxxx
            """

    ->python中的语句
        python中的语句以换行为结束
        如果一条语句太长,可以使用续航符 "\"

    ->python中的语句块
        python没有用话括弧来标识语句块,而是使用严格的缩进来标识语句块。
        如果缩进有问题,则报错。    

        缩进可以是Tab可以是空格。

    ->python中的语句构成:
        同C语言,也是由表达式构成。
        python中也存在变量,但是python中变量的定义从来不会指定变量的数据类型。
        但是python是有数据类型的。        

例如:

a = 5
            print(type(a))

            运行结果为:<class 'int'>

终端:

在路径输入& .\文件名----->在终端中运行python文件

在路径输入cls---->清空终端信息

  8.python中支持的数据类型

            Number类型(数字类型):存储数字(整数,实数,虚数,复数)
            字符串
            列表:类似与数组
            元组:类似于不可更改的数组
            字典:类似于键值对
            集合:

            不可修改的类型:数字、字符串、元组
            可修改的类型:列表、字典、集合

        Number:(不能修改)

a = 5
     b = 6
     print(a+b)

            Number的操作:
                +、-、*、/、//、%、**
                加、减、乘、除、整除、取余数、幂
                &、|、^、<<、>>、~
                按位与、按位或、按位异或、左移、右移、按位取反

                获取变量的地址:    id(变量名)
                int():类型转换为int
                float():类型转换为float

            例子:   

a = 3
                b = 2
                c = a * b
                d = a + b
                e = a - b
                #带小数点的除
                f = a / b
                g = a % b
                #取a的3次幂
                h = a ** 3
                #end=",",即将print默认以\n结尾改为,结尾
                print(c,d,e,f,g,h,end=",")
                print(type(f))
                print(id(a),id(b))
                #整除
                print(a // b)

            类型转换的例子:

a = 3
                b = 3.75
                print(b,type(b))

                c = int(b)
                print(c, type(c))

                d = float(a)
                print(d, type(d))

          ->python中的字符串
        字符串不能更改,用""/''引起来
        例子:    

#定义字符串
            '''
                字符串定义时,单引号和双引号都可以
            '''
            str1 = 'Tom'
            str2 = "Jerry"

            print(str1,type(str1))
            print(str2,type(str2))
            '''
                下面的代码等价于print("str1 len:", len(str1))
            '''
            print("str1 len:",end=" ")
            print(len(str1))

            #格式化输出
            print("str1 len:%d"%len(str1))
            print(id(str1))
            str1 += str2
            print(str1)
            print(id(str1))

        求字符串长度/求变量的长度:
            len(变量名)

        字符串截取:
            '''
                python中字符串截取:
                    可以把字符串理解成一个元素类型相同列表,且不能修改
                    下标从0开始到size-1
                    字符串名[start:stop:step]
                        start:起始位置的下标,不给默认为0,-1:最后一个元素
                        stop:结束位置的下标,不包含结束位置
                        step:步长,默认为1,可以大于0,可以小于0
                            >0:向右
                            <0:向左
            '''

            左闭右开:包含start下标的元素,不包括stop下标的元素

        字符串遍历:

a = "Tom is a cat!"
            '''
            for x in a:
                print(x)
            '''
            for i in range(len(a)):
                print(a[i],end="")

        字符串操作函数:
            endswith(子串):看字符串是否以子串为结尾,返回值为布尔类型
            <class 'bool'>: True, False

            startswith(子串):看字符串是否以子串为开头,返回值为布尔类型
            split(分隔符):以分隔符分割字符串,返回值是列表,列表中存储每个子串
            splitlines():以'\n'为分隔符进行分割
            replace(oldstr,newstr,count):用newstr替换元字符中,从前往后数count个oldstr,如果不给count,默认全部替换
            index(子串):子串在字符串中第一次出现的下标位置
            find(子串):同index
            rindex(子串):从后往前找
            rfind(子串):从后往前找
            capitalize():首字符大写(整个句子的第一个单词首字符)
            title():所有单词的首字母大写
            upper():所有字母大小
            lower():所有字母小写
            islower():字符串是否所有字母小写,返回值为bool类型。

->python中没有switch case

python中的三种基本结构:
    顺序
    循环
    分支