为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
初识Python_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

初识Python

廖雪峰 移动开发工程师
难度入门
时长 5小时 0分
  • dict的第三个特点是作为 key 的元素必须不可变,Python的基本类型如字符串、整数、浮点数都是不可变的,都可以作为 key。但是list是可变的,就不能作为 key。

    查看全部
  • 其实not 就是非得意思  这里得意思就是 不是双数  即非双数 ,然后继续循环

    查看全部
  • 其实not 就是非得意思  这里得意思就是 不是双数  即非双数 ,然后继续循环

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

    >>> for key, value in d.items():
    ...     print key, ':', value
    ... 
    Lisa : 85
    Adam : 95
    Bart : 59

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


    查看全部
  • tuple的每个元素,指向永远不变

    查看全部
  • 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

    2018-05-22

  • 使用 enumerate() 函数,我们可以在for循环中同时绑定索引index和元素name。但是,这不是 enumerate() 的特殊语法。实际上,enumerate() 函数把:

    ['Adam', 'Lisa', 'Bart', 'Paul']

    变成了类似:

    [(0, 'Adam'), (1, 'Lisa'), (2, 'Bart'), (3, 'Paul')]

    因此,迭代的每一个元素实际上是一个tuple:

    for t in enumerate(L):
        index = t[0]
        name = t[1]
        print index, '-', name

    如果我们知道每个tuple元素都包含两个元素,for循环又可以进一步简写为:

    for index, name in enumerate(L):
        print index, '-', name

    这样不但代码更简单,而且还少了两条赋值语句。

    可见,索引迭代也不是真的按索引访问,而是由 enumerate() 函数自动把每个元素变成 (index, element) 这样的tuple,再迭代,就同时获得了索引和元素本身。


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

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


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

    2018-05-22

  • 可以简单地使用 d[key] 的形式来查找对应的 value,这和 list 很像,不同之处是,list 必须使用索引返回对应的元素,而dict使用key:

    >>> print d['Adam']
    95
    >>> print d['Paul']
    Traceback (most recent call last):
      File "index.py", line 11, in <module>
        print d['Paul']
    KeyError: 'Paul'

    注意: 通过 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


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

    2018-05-22

    1. 判断 x<N,如果符合条件,执行循环体重的代码,如果不符合循环体的条件,就不执行循环体的代码(不影响sum的值)。

    2. 求100以内奇数之和的思路:

    • 每循环一个数,将它对2取余,如果为0是偶数,否则是奇数。

    • 设定循环的初始值为1,每循环一次加2,因此被操作数始终为奇数。

    查看全部
  • list 和 tuple 可以用来表示顺序集合,例如,班里同学的名字:

    ['Adam', 'Lisa', 'Bart']

    或者考试的成绩列表:

    [95, 85, 59]

    Python的 dict 就是专门干这件事的。用 dict 表示“名字”-“成绩”的查找表如下:

    d = {
        'Adam': 95,
        'Lisa': 85,
        'Bart': 59
    }

    我们把名字称为key,对应的成绩称为value,dict就是通过 key来查找 value。

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

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

    >>> len(d)
    3

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


    查看全部
  • 注意: 集合是指包含一组元素的数据结构,我们已经介绍的包括:
    1. 有序集合:list,tuple,str和unicode;
    2. 无序集合:set
    3. 无序集合并且具有 key-value 对:dict

    查看全部
    0 采集 收起 来源:什么是迭代

    2018-05-22

  • 关于几种集合的性质
    • https://img1.sycdn.imooc.com//5b03b9df0001fc1503740115.jpg

    查看全部
    0 采集 收起 来源:什么是迭代

    2018-05-22

  • 在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。

    举个例子,我们来计算阶乘 n! = 1 * 2 * 3 * ... * n,用函数 fact(n)表示,可以看出:

    fact(n) = n! = 1 * 2 * 3 * ... * (n-1) * n = (n-1)! * n = fact(n-1) * n

    所以,fact(n)可以表示为 n * fact(n-1),只有n=1时需要特殊处理。

    于是,fact(n)用递归的方式写出来就是:

    def fact(n):
        if n==1:
            return 1
        return n * fact(n - 1)
        使用递归函数需要注意防止栈溢出。在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出。可以试试计算 fact(10000)


    查看全部
  • Python的math包提供了sqrt()函数用于计算平方根。

    查看全部
  • 游戏中经常需要从一个点移动到另一个点,给出坐标、位移和角度,就可以计算出新的坐标:

    # math包提供了sin()和 cos()函数,我们先用import引用它

    用print打印返回结果,原来返回值是一个tuple

    但是,在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,按位置赋给对应的值,所以,Python的函数返回多值其实就是返回一个tuple,但写起来更方便。


    查看全部

举报

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

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