美文网首页
2.24学堂在线python学习笔记 高阶编程

2.24学堂在线python学习笔记 高阶编程

作者: 13351 | 来源:发表于2019-02-25 18:25 被阅读0次

    @[TOC](2.24学堂在线python学习笔记 高阶编程)

    # 重要笔记

    1. 利用二分搜索法来查找一个字符是否在字符串当中

    ```py

    def isIn(char, aStr):

      '''

      char: a single character

      aStr: an alphabetized string

      returns: True if char is in aStr; False otherwise

      '''

      # Base case: If aStr is empty, we did not find the char.

      if aStr == '':

          return False

      # Base case: if aStr is of length 1, just see if the chars are equal

      if len(aStr) == 1:

          return aStr == char

      # Base case: See if the character in the middle of aStr equals the

      #  test character

      midIndex = len(aStr)/2

      midChar = aStr[midIndex]

      if char == midChar:

          # We found the character!

          return True

      # Recursive case: If the test character is smaller than the middle

      #  character, recursively search on the first half of aStr

      elif char < midChar:

          return isIn(char, aStr[:midIndex])

      # Otherwise the test character is larger than the middle character,

      #  so recursively search on the last half of aStr

      else:

          return isIn(char, aStr[midIndex+1:])

    ```

    第六章

    # 重要概念

    咱们这节课从数据类型讲起,进而将我们的编程变成高阶的编程。我们会了解到集中复杂的数据结构:元组、列表、字典。还会看到调用函数的函数,以及利用它调用函数集的函数。

    # 元组

    元组的基本想法是:能不能像字母串一样,构造一个可以有次序的序列?只不过把字符串中的每一个字符替换成一个数据?

    元组实现了这样的功能

    1. 元组不可更改

    元组仅仅能够用() 赋值来添加,例如

    ```py

    T1=(1,’two’,3)

    T2=(t1,’four’)

    #如此T2肯定是这样的形式 ((1,’two’,3),’four’)

    print(T1+T2)

    #(1,’two’,3,’four’)

    #取出操作

    print(T1+T2)[3]

    #切片

    print(T1+T2)[2:5]

    #单个例子

    T3=(‘five’,)

    #特别注意单个例子必须要以 ‘ , ’ 

    #结尾,这样才能是好的元组

    ```

    # 元组例子

    1. 操纵元组找出所有公约数

    # 列表

    1. 列表支持所有形式的操作,刚才的检索、切分、串联、循环访问,都支持

    2. 但是我们为什么需要元组呢?有时候,我们在数据频繁引用的时候就将变量设定成元组,如此一来能够从源头上避免数据格式不对发生bug

    3. 但是为什么又需要列表呢?列表因为能够具体修改其中的某几项,这在数据库非常大的时候变得非常实用,我们就不需要每次修改数据就新建一个数据库了

    4. 注意,因为列表可以对元素进行修改,有时候环境的指针还没有改位置,这就造成了有时候需要额外拷贝一份列表,对这个拷贝进行循环,但是却在原列表上做增删改

    5. 列表a,b的直接加减(带上名字)能够形成另外一个变量,设为Y

    Y=a+b的话,如果a,b的数值在程序后面进行了修改,Y的值就会自动计算到新的a+b,如果在程序后方Y的值发生了修改,a+b的值也会发生修改,这就叫做

    Aliasing别名方法,很好用,但是也很危险!

    # 高阶编程

    1. 函数映射到函数

    考虑函数 h(c,f) ,f是一个函数,如此就对h调用了f的函数,但是一旦调过来

    h(F,c) 假定F是一个函数集,那么就可以对同一组数值c反复作用F中不同的函数

    2. Python中就已经自带了过程映射的函数 map(a,b)

    相关文章

      网友评论

          本文标题:2.24学堂在线python学习笔记 高阶编程

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