为了账号安全,请及时绑定邮箱和手机立即绑定

初识Python

廖雪峰 移动开发工程师
难度入门
时长 5小时 0分
学习人数
综合评分9.43
3713人评价 查看评价
9.7 内容实用
9.4 简洁易懂
9.2 逻辑清晰
  • >>> L = ['Adam', 'Lisa', 'Bart', 'Paul']
    >>> L.pop()
    'Paul'
    >>> print L
    ['Adam', 'Lisa', 'Bart']

    pop()方法总是删掉list的最后一个元素,并且它还返回这个元素,所以我们执行 L.pop() 后,会打印出 'Paul'。

  • python的运算直接输入就行,需要输出的前面加print,但不是字符串的不需要加‘’。

  • >>> L = ['Adam', 'Lisa', 'Bart']
    >>> L.append('Paul')
    >>> print L
    ['Adam', 'Lisa', 'Bart', 'Paul']

    append()总是把新的元素添加到 list 的尾部。

    >>> L = ['Adam', 'Lisa', 'Bart']
    >>> L.insert(0, 'Paul')
    >>> print L
    ['Paul', 'Adam', 'Lisa', 'Bart']

    L.insert(0, 'Paul') 的意思是,'Paul'将被添加到索引为 0 的位置上(也就是第一个),而原来索引为 0 的Adam同学,以及后面的所有同学,都自动向后移动一位。

  •  -1 这个索引来表示最后一个元素:print L[-1]

    倒数第二用 -2 表示,倒数第三用 -3 表示,倒数第四用 -4 表示:

  • python中基本数据结构: list  dict   tuple  set的相关知识

     

    浮点数    float    科学计数法表示


    布尔值注意大小写    True    False


    空值    None


    python还提供了列表、字典等多种数据类型


    Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。


    直接用 [ ] 把list的所有元素都括起来,就是一个list对象。通常,我们会把list赋值给一个变量,这样,就可以通过变量来引用list


    由于Python是动态语言,所以list中包含的元素并不要求都必须是同一种数据类型,我们完全可以在list中包含各种数据:


    一个元素也没有的list,就是空list:


    list.append(元素)向末尾添加


    list.insert(索引,元素)向指定位置插入


    list.pop()删除元素


    接受空参数(删除末位),或者指定索引位置


    返回被删除的元素


    直接对list中的元素赋值可以达到修改的目的


    tuple  和list结构相似,但定义后不能再修改


    用()创建,


    >>> t = ('Adam', 'Lisa', 'Bart')

    索引还是一样的t[0]


    单元素tuple


    t = (1,)


    防止被解释为整型数,所以加一个,


    多元素tuple加不加,无所谓结果一样


    tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!


    dict字典结构


    d = {

        'Adam': 95,

        'Lisa': 85,

        'Bart': 59

    }

    花括号 {} 表示这是一个dict,然后按照 key: value, 写出来即可。最后一个 key: value 的逗号可以省略。


    由于dict也是集合,len() 函数可以计算任意集合的大小:


    >>> len(d)

    3

    注意: 一个 key-value 算一个,因此,dict大小为3。


    可以简单地使用 d[key] 的形式来查找对应的 value


    python中所有结构体访问的时候都是[]?


    注意: 通过 key 访问 dict 的value,只要 key 存在,dict就返回对应的value。如果key不存在,会直接报错:KeyError。


    if 'Paul' in d:

        print d['Paul']

    dict.get(key)来判断key是否在dict中


    >>> print d.get('Bart')

    59

    >>> print d.get('Paul')

    None


    dict    


    查找速度快、但占用内存空间大,key不能重复,且key必须是不可变的数据类型,list不可以作key,元素对存储无序


    list


    查找速度随元素个数增多而变慢,占用内存空间小,元素存储有序


    dict的更新


    dict[key] = value


    可以用循环结构遍历dict


    for循环比较常用


    set


    跟list有类似的结构,但其中元素不能重复


    与list有莫大的渊源,创建方式也是将list作为参数传入


    创建 set 的方式是调用 set() 并传入一个 list,list的元素将作为set的元素:


    >>> s = set(['A', 'B', 'C'])

    set中的元素是无序存储的


    当我们传入包含重复元素的 list,set会自动去掉重复的元素


    由于set存储的是无序集合,所以我们没法通过索引来访问。


    访问 set中的某个元素实际上就是判断一个元素是否在set中。


    大小写很重要,'Bart' 和 'bart'被认为是两个不同的元素。


    set的内部结构和dict很像,唯一区别是不存储value,因此,判断一个元素是否在set中速度很快。


    set存储的元素和dict的key类似,必须是不变对象,因此,任何可变对象是不能放入set中的。


    最后,set存储的元素也是没有顺序的。


    set也是一种集合,可以用for循环遍历


    list     L = []


    tuple    t = ()


    dict    d = {}


    set    s = set([])


    set的更新


    set.add()    添加    add不会报错,重复不变


    set.remove()    删除    删除前需要判断是否在set中否则可能报错


  • set内部存储的元素是无序的。set不能包含重复的元素

  • B22

    切片L[X:X:X]

    第一个数表示开始位置,第二个数是结束位置,第三个数是间隔

    把list换成tuple,切片操作完全相同,只是切片的结果也变成了tuple

  • def firstCharUpper(s):

        return s[0].upper()+s[1:]


    print firstCharUpper('hello')

    print firstCharUpper('sunday')

    print firstCharUpper('september')


  • 注意: 通过 key 访问 dict 的value,只要 key 存在,dict就返回对应的value。如果key不存在,会直接报错:KeyError。

    要避免 KeyError 发生,有两个办法:

    一是先判断一下 key 是否存在,用 in 操作符:

    if 'Paul' in d:
        print d['Paul']

    如果 'Paul' 不存在,if语句判断为False,自然不会执行 print d['Paul'] ,从而避免了错误。

    二是使用dict本身提供的一个 get 方法,在Key不存在的时候,返回None:

    >>> print d.get('Bart')
    59
    >>> print d.get('Paul')
    None


  • 不可变这个限制仅作用于key,value是否可变无所谓

  • dict的缺点是占用内存大,还会浪费很多内容,dict内部是无序的ict的,作为 key 的元素必须不可变

  • #-*- coding:utf-8 -*-

    # move(n, a, b, c)表示的是有n个盘子在a柱子上,将要移到b柱子上面去

    def move(n, a, b, c):

    # 如果a柱子上面只有一个盘子,则直接移到c柱子上面去并输出路径,结束递归

        if n == 1:  

            print a, '-->', c

            return

    # 表示的是将n-1的盘子从a柱子上面移到b柱子上面去

        move(n-1, a, c, b)

    # 输出最下面个盘子移从a移到c的路径

        print a, '-->', c

    # 将b柱子上面的n-1个盘子移动到c柱子上面

        move(n-1, b, a, c)


    move(4, 'A', 'B', 'C')


举报

0/150
提交
取消
课程须知
如果您了解程序设计的基本概念,会简单使用命令行,了解中学数学函数的概念,那么对课程学习会有很大的帮助,让您学起来得心应手,快速进入Python世界。
老师告诉你能学到什么?
通过本课程的学习,您将学会搭建基本的Python开发环境,以函数为基础编写完整的Python代码,熟练掌握Python的基本数据类型以及list和dict的操作。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!