美文网首页
Python编程学习笔记1.0

Python编程学习笔记1.0

作者: myRealization | 来源:发表于2018-03-11 11:14 被阅读0次

    《Python编程》学习笔记1.0

    python

    作为大一的学生,虽然面临从早到晚的各种课程(水课),但是我还想好好学一次Python。

    说实话,我不是零基础的。以前学过一点C,还在大一上学期学了一点Python的网络课程。但由于我当时“人心不足蛇吞象”,竟然妄想将更高级的一些课程一起学完,例如Python机器学习和全栈开发……

    最后可想而知,在社团、课程考试以及一次性学这么多门课的疲惫之下,我……花了半期却没取得什么成果……

    但是A站都可以说出“I'll be back!”,我也不会就这么自我放弃,决心扎实地深入学习。

    担心枯燥的内容难以坚持下来,我就希望通过写博客的方式督促自己复习和学习,一有空就更新博客。很多大牛通过更新自己的网站或更新博文的方式传播技能知识,令我深受启发。比如廖雪峰老师。而这也是我第一次用这种方式学习一门知识,对于自己来说是一种全新的体验,也可以作为学习笔记,日后也留有足迹。我的学习资料暂定为 《Python编程(第四版上册)》。

    python编程

    如果有新手看到此文章,希望只当参考中的参考,我们可以共同学习和进步。如有错误,还请大家指正!


    准备工作

    我使用的是Windows64bit系统,选择的文本编辑器是Python自带的IDLE,对新手友好,既有交互式界面,也可以Ctrl + N 创建新文件,F5运行。


    IDLE

    本章程序任务

    构建一个Python类实例的保存记录的数据库,它可以通过多种界面对其进行访问和修改。
    通过以下步骤进行迁移:

    • 交互式编程
    • 命令行工具
    • 控制台界面
    • GUI
    • 简单的网页界面

    涉及到:

    • 数据表示
    • 对象持久化
    • 面向对象编程(OOP)

    本章目的

    不是为了让我们深入了解Python,而是通过一个应用实例来向我们展示使用Python编程的总体目标。


    第一步:表示记录

    如果我们要在数据库中存储记录。首要步骤就是确定以什么样的形式表示这些记录,为此,我们通常使用诸如列表和字典这样的内建对象类型。特别是我们并不关心如何处理数据的时候。

    1.使用List

    l列表使用位置排序的方式收集人们的信息,也就是说,列表中的数据是有序排列的。

    输入以下的语句,假设这是我们要保存的数据记录。每条记录是四个属性的列表:姓名,年龄,薪水,工作领域。

    >>> bob =  ['Bob Smith', 42, 30000, 'software']
    >>> sue = ['Sue Jones', 45, 40000, 'hardware']
    

    要访问它们,需要通过指定位置进行索引,或是切片,或是迭代。

    >>> bob[0], sue[2]    # 访问记录项, 获取姓名和薪水
    ('Bob Smith', 40000)    # 访问多个元素以逗号隔开,是元组形式
    

    处理这些记录很简单,只需使用列表操作就可以了。

    >>> bob[0].split()[-1]    # 以空格来分割姓名字段,获取最后的部分,得到bob姓什么
    'Smith'
    >>> sue[2] *= 1.25  #  通过改变薪水在列表中的相应字段来给给sue加薪25%,并更新数据
    >>> sue
    ['Sue Jones', 45, 50000.0, 'hardware']
    

    2.数据库列表

    上面做的不过是创建了两个变量罢了,离数据库还差了十万八千里呢。
    为了能够统一使用这两条记录,而非次次获取姓名……时都一个个的查询,我们要有一个数据容器来装下它们。

    容器

    没错,Python中的列表和字典就是这种容器。这里为了把Bob和Sue存在一起,我们要使用列表的嵌套,把他们放到一个新列表里面。

    >>> people = [bob, sue]    # 应用列表的列表
    >>> for person in people:
                 print(person)
    ['Bob Smith', 42, 30000, 'software']
    ['Sue Jones', 45, 50000.0, 'hardware']
    

    Good job,现在我们获取了一个微型的数据库列表people!

    现在我们可以通过它们的相对位置来获取特定记录,或是通过循环一次处理一条记录,以达到一次性处理多条数据的目标。
    虽然它仍然离真正的数据库差很远,但我们已经可以查询(多条)数据、写入数据和处理(多条)数据了。

    >>> people[1][0]   # sue 的姓名
    'Sue Jones'
    >>> for person in people:
                print(person[0].split()[-1])   # 打印姓氏
                person[2] *= 1.20               # 涨25%的薪水
    Smith
    Jones
    >>> for person in people:print(person[2])  # 检查新的薪酬
    36000.0
    60000.0
    

    为了向这个数据库中添加记录,使用append和extend这样通常的列表操作就足够了。

    >>> people.append(['Tom',50,0,None])
    >>> len(people)   # 检查数据库中的数据条数
    3
    >>> people[-1][0], people[2][0]   # 列表可以正向也可以反向查询,结果一样。
    ('Tom', 'Tom')
    

    python中的len()对字符串使用时会返回其长度,对列表使用时会返回列表的元素个数,对列表的列表使用时会返回其表层的元素个数。

    python中列表操作的append和extend似同实异,差别比较很重要,这里简单说一下,以后有时间再详细分析。

    • list.append(object) 向列表中添加一个对象object
    • list.extend(sequence) 把一个序列seq的内容添加到列表中
    >>> music = ['compact disc', '8-track tape', 'long playing record']
    >>> new_music = ['DVD Audio disc', 'Super Audio CD']
    >>> music.append(new_music)
    >>> print(music)
    ['compact disc', '8-track tape', 'long playing record', ['DVD Audio disc', 'Super Audio CD']]
    

    使用append的时候,是将new_music看作一个对象,整体打包添加到music对象中。

    >>> music = ['compact disc', '8-track tape', 'long playing record']
    >>> new_music = ['DVD Audio disc', 'Super Audio CD']
    >>> music.extend(new_music)
    >>> print(music)
    ['compact disc', '8-track tape', 'long playing record', 'DVD Audio disc', 'Super Audio CD']
    

    使用extend的时候,是将new_music看作一个序列,将这个序列和music序列合并,并放在其结尾。

    所以,append固然可以添加单个元素到列表结尾,但要一次性添加多个元素时还是用extend更加省力

    image

    列表基本操作和方法

    这里是针对列表基本操作的总结,以后也可轻松查阅

    列表操作符 操作符含义
    < list1 > + < list2> 连接两个列表
    < list > * < 整数类型> 列表中的元素进行整数次重复
    < list > [< 整数类型>] 索引列表中的元素
    len( < seq > ) 列表中元素个数
    < list >[ < 整数类型> : < 整数类型>] 取列表的一个子序列
    for < var > in < list > : 对列表进行循环列举
    < expr > in < list > 成员检查,判断<expr>是否在列表中
    方法 方法含义
    < list > . append ( x ) 将元素x增加到列表的最后
    < list > . extend ( list< x > ) 把一个序列x的内容添加到列表中
    < list > . sort ( ) 将列表元素排序
    < list > . reverse ( ) 将序列元素反转
    < list > . index ( ) 返回第一次出现元素x的索引值
    < list > . insert ( i, x ) 在位置i处插入新元素x
    < list > . count ( x ) 返回元素x在列表中的数量
    < list > . remove ( x ) 删除列表中第一次出现的元素x
    < list > . pop ( i ) 取出列表中位置i的元素,并删除它,无指定的数时默认从最后一位开始抽出

    相关文章

      网友评论

          本文标题:Python编程学习笔记1.0

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