• python 简明教程笔记


    1,python特点

    python 注重的是如何解决问题,而不是语法和结构简单高效、扩展性

    2,安装 python

    python -V        检测是否安装pythonctrl+d            退出python提示符python是大小写敏感的
    任何#号后面的都是注释
    特殊形式的注释 #!,被称为组织行,这行的目的是告诉系统在执行程序时,应该运行哪个解释器
    第一行的注释不能是中文
    解释器中运行python
    退出:linux ctrl +  d    window  ctrl + z 然后 enter回车

    帮助: help(str),在linux中,通过 env 设置pythondocs 环境变量,就可以使用 help 命令了

    3,基本概念

    字符串、常量、变量
    4种类型的数:整数、长整数、浮点数和复数
    单引号显示字符串,所有的空格、制表符都会显示
    三引号显示多行的字符串,在三引号中可以自由使用单引号和双引号
    单引号、双引号、三引号
    在字符串中,行末单独的反斜杠 表示字符串在下一行继续
    自然字符串 r"" 或 R"",指示某些不需要如转义符那样的特别处理的字符串
    python 允许处理unicode文本,只需要在字符串前面加上 u"中文"
    字符串是不可变的
    按字面意思自动连接,例如 'this is a' 'book is good?' 会连接为一句
    python没有char数据类型,单引号和双引号意思一样,
    可以用自然字符串处理正则表达式,要不会需要很多的反斜杠


    4,基本概念
    变量可以存储任何东西,变量是你计算机中存储信息的一部分内存
    python变量标识符由字母数字下划线组成,首字母必须是下划线或者字母
    变量可以处理不同类型的值,称为数据类型
    python 标识符区分大小写

    python是完全面向对象的,对于数字、字符串、函数都可以是对象,python把在程序中用到的任何东西都称为对象
    使用变量时,只需要赋值,不需要声明变量或数据类型

    逻辑行与物理行=====物理行是你在编写程序时所看见的,逻辑行是python看见的单个语句

    默认的python希望每行都只有一条语句
    强烈建议,每个物理行,只有一个逻辑行
    如果你想在一个物理行显示多个逻辑行,可以使用分号; ,分号表示一个逻辑行的结束
    如果逻辑行太长,可以使用明确的行连接, 使用反斜杠
    python程序扩展名为.py
    在解释器中运行: python program.py

    python中行首的空白最重要,用来决定逻辑层的缩进层次,从而决定语句的分组
    同一层次的语句必须有相同的缩进,每一组这样的语句称为一个块
    何时你能够使用新块,在控制流中详细介绍
    选择一种缩进风格使用,然后一贯的使用它

    5,运算符和操作数
    运算符 +、-、,一个表达式可以分解为运算符和操作数
    http://www.kuqin.com/abyteofpython_cn/ch05s02.html

    赋值运算符的运算是从右向左的

    控制流
    python中三种控制流语句 if、for、while,python中没有switch语句
    raw_input    内建函数,提交一个字符串,等待用户输入,并给出提示
    if elif else

    while
    while 语句有一个可选的else 从句
    python 严格注重缩进和大小写,就连True和False 首字母必须大小,否则都是错误的
    range 生成第一个数到第二个数之前的序列,第三个参数是步长
    for i in range(1,5)  等于 for i in [1,2,3,4]

    for i in [序列]
    for in 循环语句,逐一使用队列中的每一项目

    len 函数,获取字符串的长度 len(str)
    break 终止循环
    如果在循环中终止,else块将不执行
    continue 跳出当前循环,继续下一次循环,使用于循环中
    int 把字符串转换为整数,事实上int是一个类

    6,函数
    def sayHello():    定义函数
    def 关键字定义函数,
    函数内部定义的变量是局部的,
    有默认参数值必须在无默认参数值的后面声明,否则是无效的,也就是先声明无默认值形参,再声明有默认值的形参
    global 用来声明全局变量,可以同时声明多个全局变量
    如果一个函数有许多参数,可以通过命名为函数添加实参,也就是指定的值传递参数

    没有返回值的return,等价于return None
    pass 在python中表示一个空的语句块

    docStrings    文档字符串
    【文档字符串的惯例】是一个多行字符串,它的首行以大写字母开始,第二行是空行,从第三行开始时详细的描述 句号结尾。
    print func.__doc__        打印文档字符串
    第二行是空行,从第三行开始是描述
    建议自己所写的函数都要写文档字符串

    7,模块
    模块是一个包含了你定义的函数和变量的文件,为了在其他程序中重用模块,模块的文件名必须以.py为扩展名
    学习使用标准库模块
    字节编译的 .pyc 文件,使输入模块更快一些

    import 模块名,告诉python,我们将要使用这个模块
    sys.argv     包含了命令行参数的列表,列表的第一个参数总是脚本的名称
    from .. import
    直接使用argv变量到你的程序中,from sys import argv
    避免使用 from..import,而使用import语句,因为这样可以使你的程序更加易读

    模块的 __name__
    假设我们只想在程序本身运行的时候,执行,而在被别的模块输入的时候不运行
    每个python模块都有一个__name__,如果它是 '__main__' ,说明这个模块是被单独运行的

    制造你自己的模块----每个python程序也是一个模块

    内建的dir 函数
    使用内建的dir函数列出模块定义的标识符,标识符有函数、类和变量
    dir() 提供一个模块名,返回模块定义的名称列表 不提供参数时,提供模块名时,返回当前模块中定义的名称列表
    del 删除一个变量

    8,数据结构
    数据结构是指程序可以处理的数据 和 结构
    python有三种内建的数据结构:列表、元组、字典

    列表 --处理一组有序项目的数据结构
    list = ['apple','banner']
    append方法 向列表末尾添加一个项目、sort方法,del 删除列表中的一个元素,指定列表,第几个元素

    元组也是一个序列,元组和字符串一样是不可变的
    元组通过圆括号中用逗号分割的项目定义
    含有0个项目的元组 empty = ()
    含有1个项目的元组 myone = (2,) 项目后必须跟一个逗号
    元组最常用的用法是用在打印语句中---- %s 表
    例如 zoo = ('apple','people')


    字典,由键和值组成的序列,中间用冒号,一般称为json
    d = {key1:value1,key2:value2}
    字典是dict类的实例/对象
    字典的items()方法,for in 循环
    for name,address in ab.items(): 打印键和值
    a in ab:     检测一个键值是否存在

    序列
    列表、元组、和字符串都是序列,序列的特点就是 索引操作符 和 切片操作符,
    索引就是从序列中抓取特定项目
    切片操作符让我们能够获取序列的一个切片,即一部分序列
    变量名指定计算机中存储那个对象的内存,这被称作名称到对象的绑定
    【序列的神奇:可以用相同的方法访问元组、列表和字符串】

    根据索引取得序列中的值,可以是负数,-1 是最后一个元素
    切片操作符 是 序列名后跟一个方括号,方括号中有一对可选的数字,数是可选的,冒号是必须的
    冒号之前的数表示切片开始的位置,冒号之后的数表示到哪里结束,开始位置被包含在序列切片中,结束位置被包含在序列切片外
    [:] 返回整个序列的拷贝
    列表的赋值语句不创建拷贝,必须使用切片操作符list[:]来创建序列的拷贝
    [:] 这种写法是拷贝当前对象,赋值的化是引用


    字符串也是对象,在程序中使用的字符串是str类的对象
    startswith()    测试字符串是否以给定字符串开始 name.startwith("war")
    in         用来检验给定字符串是否为另一个字符串的一部分 a in name
    find    找出给定字符串在另一个字符串中的位置,返回-1 表示找不到子字符串
    join()     将序列用分隔符拼接的字符串  分隔符.join(序列)


    python 备份程序
    使用 os模块、time模块
    time.strftime()     定制时间%Y%m%d%H%M%S
    zip -q 表是zip命令安静的工作    -r 表示zip命令对目录递归的工作
    os.path.exists        检验是否有以当前日期作为名称的目录
    os.mkdir            创建目录
    os.sep变量用法         根据操作系统给出目录分隔符,window \ linux / ,具有可移植性
    os.system() 运行命令    命令运行成功,返回0
    最理想的创建备份的方法是使用 zipfile 和 tarfile

    软件开发过程
    1,什么(分析)
    2,如何(设计)
    3,编写(实施)
    4,测试(测试与调试)
    5,使用(实施或开发)
    6,维护(优化)


    9,面向对象
    属于一个对象或类的变量被称为域,
    域和方法合称为类的属性
    类使用class创建,类的域和方法被列在一个缩进块中
    对象本身 self
    类的方法必须有一个额外的第一个参数名称 self
    假如一个类为 MyClass 和这个类的实例 MyObject
    python 调用对象方法 MyObject.method(arg1,arg2)
    会由python自动转为 MyClass.method(MyObject, arg1, arg2) ,


    __init__ 方法,对象初始化操作,类的对象被建立时,马上运行
    __del__ 方法,对象消逝的时候被运行
    def __init__(self)
    def __del__(self)
    类与对象的方法
    两种类型的域:类的变量和对象的变量
    类的变量由一个类的所有对象共享使用
    对象的变量由类的每个实例拥有

    __privatevar            私有变量
    只想在类或对象中使用    应该以单下划线前缀


    继承---通过继承,提高代码的重用性
    class Children(Parent):        继承父类
    python 不会自动继承基类的 constructor ,这里指__init__
    __base__        



    输入/输出
    使用file类的对象打开一个文件,file("open.txt","w")
    'r'    读模式,'w' 写模式,'a' 追加模式
    write() 方法写入文件
    close 关闭文件,readline()  方法来读文件的每一行


    储存器====储存和取储存
    python提高的一个标准模块,称为pickle,可以持久的储存对象,完美无缺的取出来
    还有另一个模块称为 cpickle,和pickle功能一样,比pickle快1000倍
    import cpickle as p     使用更短的模块名
    p.dump(filelist,f)
    用储存器模块的dump函数,把对象储存到打开的文件中,这个过程称为储存
    p.load(f)
    使用 pickle模块的load函数的返回来取回对象,这个过程称为取储存


    异常
    错误是由错误处理器所做的工作
    处理异常
    try .. except
    把可能引发错误的语句放入try中
    把错误处理语句放入 except中
    except 可以处理单一的错误与异常
    如果没有给出错误或异常的名称,它会处理所有的错误和异常

    引发异常:
    使用raise语句引发异常,Error 或 Exception类
    try..finally
    在一个try块下,可以同时使用except从句和finally块


    python 标准库
    python标准库是随python附带安装的,包含大量及其有用的模块

    sys模块包含系统对应的功能
    os模块包含普遍的操作系统功能



    os.name         显示你正在使用的平台
    os.system        函数用来运行shell命令
    os.path.split     函数返回一个路径的目录和文件名,返回元组
    os.path.isfile()     检验给出的路径是否是一个文件
    os.path.isdir()     检验给出的路径是否是一个目录
    os.path.exists()     检验给出的路径真的存在


    *********************************************************************************************************

    软件开发过程
    1,什么(分析)
    2,如何(设计)
    3,编写(实施)
    4,测试(测试与调试)
    5,使用(实施或开发)
    6,维护(优化)

    我想要一个可以为我的所有重要文件创建备份的程序

    我们如何确定该备份哪些文件?备份保存在哪里?我们怎么样存储备份?


    1,需要备份的文件和目录由一个列表指定。

    2,备份应该保存在主备份目录中。

    3,文件备份成一个zip文件。

    4,zip存档的名称是当前的日期和时间。

    5,我们使用标准的zip命令,它通常默认地随Linux/Unix发行版提供。
    Windows用户可以使用Info-Zip程序。注意你可以使用任何地存档命令,只要它有命令行界面就可以了,那样的话我们可以从我们的脚本中传递参数给它。

    如果您看了本篇博客,觉得对您有所收获,请点击右下角的 [推荐]

    如果您想转载本博客,请注明出处

    如果您对本文有意见或者建议,欢迎留言

    感谢您的阅读,请关注我的后续博客

  • 相关阅读:
    强化学习快速入门
    Spark GraphX图计算简单案例【代码实现,源码分析】
    CDA数据分析【第二章:数据收集与导入】
    CDA数据分析实务【第一章:营销决策分析概述】
    CDA数据分析【第一章:数据分析概述】
    BLAS快速入门
    Tachyon内存文件系统快速入门
    Solr新特性【4.x,5.x,6.x,7.x】
    利用Redis keyspace notification(键空间通知)实现过期提醒
    设计模式 行为型
  • 原文地址:https://www.cnblogs.com/geek12/p/4616781.html
Copyright © 2020-2023  润新知