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

初识Python

廖雪峰 移动开发工程师
难度入门
时长 5小时 0分
学习人数
综合评分9.43
3762人评价 查看评价
9.7 内容实用
9.4 简洁易懂
9.2 逻辑清晰
  • 一是先判断一下 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


    查看全部
    0 采集 收起 来源:Python之访问dict

    2020-08-01

  • \n 为转义字符,表示换行 ,注意为左斜杠!

    http://img1.sycdn.imooc.com//5f2417d70001a00502900110.jpg

    查看全部
  • 第二次学习

    查看全部
  • 列表生成式的 for 循环后面还可以加上 if 判断


    isinstance(x, str) 可以判断变量 x 是否是字符串;

    字符串的 upper() 方法可以返回大写的字母。


    查看全部
    0 采集 收起 来源:条件过滤

    2020-07-31

  • items()可以将dict的对象转换成了包含tuple的list,我们对这个list进行迭代,可以同时获得key和value:

    >>> d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
    >>> print d.items()
    [('Lisa', 85), ('Adam', 95), ('Bart', 59)]

    和 values() 有一个 itervalues() 类似, items() 也有一个对应的 iteritems(),iteritems() 不把dict转换成list,而是在迭代过程中不断给出 tuple,所以, iteritems() 不占用额外的内存。

    查看全部
  • dict 对象有一个 values() 方法,这个方法把dict转换成一个包含所有value的list,这样,我们迭代的就是 dict的每一个 value:

    d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
    print d.values()
    # [85, 95, 59]for v in d.values():    print v# 85# 95# 59

    如果仔细阅读Python的文档,还可以发现,dict除了values()方法外,还有一个 itervalues() 方法,用 itervalues() 方法替代 values() 方法,迭代效果完全一样:

    d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
    print d.itervalues()
    # <dictionary-valueiterator object at 0x106adbb50>for v in d.itervalues():
        print v
    # 85
    # 95
    # 59

    那这两个方法有何不同之处呢?

    1. values() 方法实际上把一个 dict 转换成了包含 value 的list。

    2. 但是 itervalues() 方法不会转换,它会在迭代过程中依次从 dict 中取出 value,所以 itervalues() 方法比 values() 方法节省了生成 list 所需的内存。

    3. 打印 itervalues() 发现它返回一个 <dictionary-valueiterator> 对象,这说明在Python中,for 循环可作用的迭代对象远不止 list,tuple,str,unicode,dict等,任何可迭代对象都可以作用于for循环,而内部如何迭代我们通常并不用关心。

    如果一个对象说自己可迭代,那我们就直接用 for 循环去迭代它,可见,迭代是一种抽象的数据操作,它不对迭代对象内部的数据有任何要求。


    查看全部
    0 采集 收起 来源:迭代dict的value

    2020-07-31

  • 迭代永远是取出元素本身,而非元素的索引。

    想在 for 循环中拿到索引

    方法是使用 enumerate() 函数:

    >>> L = ['Adam', 'Lisa', 'Bart', 'Paul']
    >>> for index, name in enumerate(L):...     print index, '-', name
    ... 
    0 - Adam
    1 - Lisa
    2 - Bart
    3 - Paul

    zip()函数可以把两个 list 变成一个 list:

    >>> zip([10, 20, 30], ['A', 'B', 'C'])
    [(10, 'A'), (20, 'B'), (30, 'C')]


    查看全部
    0 采集 收起 来源:索引迭代

    2020-07-31

  • 切片(Slice)操作符----‘:’写法

    >>> L[0:3]
    ['Adam', 'Lisa', 'Bart']

    L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3

    如果第一个索引是0,还可以省略

    只用一个 : ,表示从头到尾.

    第3个参数:

    L[::2]

    表示每隔n个取一个,

    查看全部
    0 采集 收起 来源:对list进行切片

    2020-07-31

  • 十六进制用0x前缀和0-9,a-f表示,例如:0xff000xa5b4c3d2,等等。

    查看全部
  • ① ()定义单元素的tuple有歧义,单元素 tuple 要多加一个逗号“,”例如:t=(1,)


    查看全部
  • L = ['Adam', 'Lisa', 'Bart']

    L[-1]='Adam'

    L[0]='Bart'

    print L

    #2

    L = ['Adam', 'Lisa', 'Bart']

    L[-1] ,L[0]=L[0],L[-1]

    print L

    #3

    L = ['Adam', 'Lisa', 'Bart']

    L.reverse()

    print L

    #4

    L = ['Adam', 'Lisa', 'Bart']

    L[::-1]

    print L


    查看全部
  • 反斜杠可以用来转义,使用r可以让反斜杠不发生转义。。 如 r"this is a line with \n" 则\n会显示,并不是换行

    我想,学了的人都知道 r'.....' 可以让里面的\不发生转义,但细说是这样的,加 ''r'' 的作用并不是让它不转义,而是在会改变原始内容的情况下,不发生转义,但没有改变原始内容的作用还是可以实现。

    例如 print r'12,\'12\'' 去掉 ''\'' 后,代码就会执行失败。可以说明 ''\'' 是产生了作用的,但它并没有消失,而是以 

    12,\'12\'

    原始内容全部输出。这就是为什么 ''\n''没有任何作用的原因。


    查看全部
  • def move(n,a,b,c):

        if n ==1:

            print a, '-->', c

            return

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

        print a, '-->', c

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



    move(5, 'A', 'B', 'C') #n改为5

        move(4,a,c,b) #(得到a='A', c='B', b='C') 函数根据move(n,a,b,c)来计算所以move(4,a,b,c)=move(4,'A','C','B')

            move(3,a,c,b)#(a='A',b='B',c='C')函数根据move(n,a,b,c)来计算所以move(3,a,b,c)=move(3,'A','B','C')

                move(2,a,c,b)#(得到a='A', c='B', b='C') 函数根据move(n,a,b,c)来计算所以move(2,a,b,c)=move(2,'A','C','B')

                    move(1,a,c,b)#(a='A',b='B',c='C')函数根据move(n,a,b,c)来计算所以move(1,a,b,c)=move(1,'A','B','C')

                        print a,'-->',c  #得到第1个顺序为'A'-->'C'

                    print a,'-->',c #这是move(2,a,c,b)的第二步 得到第2个顺序为'A'-->'B'

                    move(1, b, a, c) #由move(2,'A','C','B')推出move(1,b,a,c)的值为move(1,'A','C','B'),

                        print a,'-->',c #得出第3个顺序为'C'-->'B'

                print a,'-->',c #得出第4个顺序为'A'-->'C'

                move(2, b, a, c) #b='A',a='B',c='C',move(2,a,b,c) == move(2,'B','A','C')

                    move(1,a,c,b) # a='B',b='C',c='A'

                        print a,'-->',c #得出第5个顺序为'B'-->'A'

                    print a,'-->',c #得出第6个顺序为'B'-->'C'

                    move(1, b, a, c) #a='A',b='B',c='C'

                        print a,'-->',c #得出第7个顺序为'A'-->'C'

            #.

            #.

            #.

            #.

            #.

        #以此类推

                    

        print a, '-->', c

        move(4,b,a,c)

            move(3,a,c,b)

                move(2,a,c,b)

                    move(1,a,c,b)

            print a, '-->', c


    查看全部
  • Pyhton 不适用于硬件、移动、游戏开发,代码运行慢,但是代码量小。

    查看全部
  • 不错 通俗易懂。。

    查看全部

举报

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

微信扫码,参与3人拼团

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

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