Python要点复习

Python要点复习

1. 数据类型概览

Number/String/List/Tuple/Set/Dictionaryhtml

  • 是否可变:
    • 不可变数据类型:Number/String/Tuple
    • 可变数据类型:List/Set/Dictionary
  • 数字类型
    • int整数(只有一种整数类型)
    • bool类型:True/False
    • float浮点数
    • complex复数

2. 运算符

  • 位运算符:& | ~ ^
  • 逻辑运算符:and or not
  • 成员运算符:
    • in:若是在指定的序列中找到值则返回True,不然返回false
    • not in:语义与in相反
  • 身份运算符:
    • is:判断两个变量是否引用自同一个对象。x is y,若是xy引用的是一个相同对象,则返回True,不然返回False
    • is not:语义相反
    • is==的区别:is判断两个变量是否引用同一个对象,==判断两个变量的值是否相等
  • 删除运算符:del语句删除对对象的引用

3. 字符串

  • 单引号'和双引号"效果彻底相同
  • 没有单独的字符类型,字符就是长度为1的字符串
  • 字符串是不可变常量
  • 字符串可使用+串联在一块儿,用*运算符重复
  • 字符串截取(切片)的语法格式[begin : end](前闭后开区间)
  • 字符串的索引,从前日后数从0开始递增,从后往前数从-1开始递减
    enter description here

4. 列表

  • 列表使用方括号[],元素间使用逗号,分隔
  • 列表中的元素能够具备不一样的数据类型
  • 列表属于可变数据类型,列表中的元素是能够更改的
  • 列表可使用+串联在一块儿,用*运算符重复
  • 列表截取(切片)的语法格式[begin : end](前闭后开区间)
  • 列表的索引,从前日后数从0开始递增,从后往前数从-1开始递减
  • 重要API:
    • list.append(obj):在列表末尾添加新元素
    • list.count(obj):统计obj在列表中出现过的次数
    • list.extend(seq):在列表中一次性追加另外一个序列seq中的全部值
    • list.index(obj):返回元素obj在列表中第一次出现的索引值
    • list.insert(idx, obj):将对象插入到列表中,位置为idx,该位置原有的元素向后移动
    • list.pop(index=-1):移除列表中指定位置的元素(默认为最后一个)并返回元素值
    • list.reverse():反转列表
    • list.sort(cmp=None, key=None, reverse=False):对列表排序
    • list.clear():清空列表
    • list.copy():复制列表

5. 元组tuple

  • 元组使用小括号(),元素间使用逗号,分隔
  • 元组中的元素能够具备不一样的数据类型
  • 元组的元素是不可更改的
  • 单个元素不容许删除或修改,只能删除整个元组
  • 特殊语法:
    • 当元组中只有一个元素时,要在该元素后添加逗号,
      tup = (50, )
  • 元组与字符串相似,下标索引从0开始,能够进行截取,组合等

6. 字典

  • 字典的键值使用冒号:分隔,键值对之间使用逗号,分隔,字典包括在花括号{}
  • 键必须是惟一的,不容许存在重复的键
  • 键必须是不可变类型,如字符串、数字或元组等
  • 向字典增添新的键值对,或者修改现有的值的方法与C++语言相似
  • 重要API:
    • dict.clear():删除字典内的全部元素
    • dict.copy():返回字典的浅复制
    • dict.get(key, default=None):返回指定键的值,若是键不在字典中则返回default
    • key in dict:判断键key是否在字典中
    • dict.items():返回列表形式的(key, value)元组数组
    • dict.keys():返回字典中键的迭代器
    • dict.values():返回字典中值的迭代器
    • dict.update(dict2):将另外一个字典中的键-值对更新到字典中
    • dict.pop(key, default=None):删除字典中key对应的键值对,返回对应的值;若是键不存在,则返回传入的default

7. 集合

  • 集合中的元素不容许重复,并且是无序的
  • 集合使用花括号{},元素间使用逗号,分隔
    • 建立空集合时必须使用set(),由于空花括号{ }表示空字典
  • 重要API:
    • set.add(obj):向集合中添加元素,若是元素已经存在,则不作任何操做
    • set.clear():清空集合
    • set.remove(obj):删除集合中的某个元素。若是该元素不存在,将会报错
    • set.discard(obj):删除集合中的某个元素;若是元素不存在,不作任何处理
    • set.copy():返回集合的浅拷贝
    • set.update(set1):将另一个集合中的元素所有添加到集合中
    • set.isdisjoint(set1):判断两个集合中是否包含相等的元素,若是没有,则返回True
    • 此外,还有集合的交、并、补、差等操做,用到时再查表

8. 迭代器和生成器

  • 迭代器:
    • 迭代器的基本方法iter()next()
  • 生成器:使用了yield的函数称为生成器(generator)
    • 生成器是返回迭代器的函数,只能用于迭代操做
    • 调用生成器,返回的是一个迭代器对象
    • 在调用生成器运行的过程当中,每次遇到 yield 时函数会暂停并保存当前全部的运行信息,返回yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行
import sys
 
def fibonacci(n): # 生成器函数 - 斐波那契
    a, b, counter = 0, 1, 0
    while True:
        if (counter > n): 
            return
        yield a
        a, b = b, a + b
        counter += 1
f = fibonacci(10) # f 是一个迭代器,由生成器返回生成
 
while True:
    try:
        print (next(f), end=" ")
    except StopIteration:
        sys.exit()

9. 函数

  • Python函数的参数传递:
    • 不可变类型:相似于C++的值传递,如整数、字符串、元组。如func(a),传递的只是a的值,没有影响a对象自己。好比在func(a)内部修改a的值,只是修改另外一个复制的对象,不会影响a 自己
    • 可变类型:相似于C++的引用传递,如列表、字典、集合等。
  • lambda表达式建立匿名函数:
    • lambda 函数拥有本身的命名空间,且不能访问本身参数列表以外或全局命名空间里的参数
    • 语法:lambda arg1, arg2,... : expression
    sum = lambda arg1, arg2: arg1 + arg2
    print ("相加后的值为 : ", sum(10, 20))
    print ("相加后的值为 : ", sum(20, 20))

10. 推导式:从序列建立序列

  • for以后跟一个表达式,而后有零到多个forif子句。返回结果是一个根据表达从其后的forif上下文环境中生成出来的序列
  • vec = [2, 4, 6]; [3*x for x in vec if x > 3]将生成列表[12, 18]

11. 面向对象

  • Python中类的构造器函数是__init__(...)
    • 在子类构造器中调用父类构造器方法:父类名.__init__(self, arg1, arg2,...)
  • 类的方法的第一个参数必须是self,表明调用该方法的类的实例
  • 类的私有属性和私有方法:使用两个下划线__开头,如__attrs__methods
相关文章
相关标签/搜索