python学习笔记

来源:互联网 发布:飞叶子 知乎 编辑:程序博客网 时间:2024/06/06 10:38

内置实现detail: 1.不用分配或者管理存储的数组。使用引用值计数的垃圾回收策略,自动回收无用的对象的内存空间,这里内置类型作为右值为一个具体的对象。


1.python 数据类型:

  • 数字,字符串,列表[ ] ,字典{ },元组(),
  • 序列可反向索引[-1]:最后一个元素,[-2]倒数第二个元素。
  • 字典映射:{ key : value}
  • 元组,不可改变的列表,与字符串一样不可变 t = ( )。 有.index()  .count() 方法。没有append 方法。
  • 对变量赋新值并非替换原始对象而是让该变量引用完全不同的对象。
  1. 2 字符串
  • len 包括转义字符的长度。
  • 三重引号“““ 编写多行文本”””
  •  
    1. for x in range(0,10):  
    2.     print (x,end = '') 出错???

  •           s[a:b]表示取s[a]至s[b-1]的数。s[a:b:c]中c为步进值。
  • s.rstrip()方法可以去掉末尾的换行符。
  • 修改字符串:通过分片再合并,合并用‘+’;或者用s.replace(‘被替换的’,‘新的’)
  •  用list(s),将字符串转换为元素可改的list, 修改完成后调用‘xxx’.join(s)可以将s(此处s为列表)与xxx挨个合成。
  • 字符串格式化: %d %s    %(xxx , 'ddd' )
  1. 3 列表
  • 类似链表,但元素类型各异,insert(position,content)
  • index( xxx ) : xxx的偏移
  • del s[,,,]删除列表中的
  • set是无序不重复的集合,而list 可以重复。
  1. 4字典
  • 类似map,多个pair的键值类型不同,value类型也可以不同。
  • {a:bbbb} 或者创建空字典,挨个往里添加。或者dict(aaa=xxx,bbb=ccc)次法要求键值为字符串。或者dict( [(),()] )
  1. 5元组
  • (xxx,)一个元素的元组,元组的元素不可改。
拷贝和引用:
记住对变量为重新赋值,对变量中可改的元素更改为改变引用的值!!!

2.语法和函数
  • range(a,b,c) :生成a 到b-1的值,步进值为c.
  •  zip()并行遍历,以参数长度最短的为准。
  • 文件迭代器xxx.readline
  • 迭代器iter()
  • 在def内不增加global(或nonlocal)声明,没有办法在函数内改变函数外部的变量。
  • 函数参数中*arg:表示将收集可变数量的参数为一个新元组。**arg:表示将关键字形成字典,放于参数列表之后。

3.类

  • self相当于当前this,指向当前对象。
  • _init_()为构造函数。
服务功能链备份算法中python总结:
  1. pass:占位字符,无意义。self.__class__.__name__
  2. python类中的方法默认为public,私有方法为__function()[方法前增加双下划线]
  3. self.__class__.__name__ 显示类名。
  4. 函数的可变参数function(a,b,*c):*c为可接受多个参数的变量。而function(a,**b)中对a指定的传参后,b接受其他参数如function(a=4,b=3,c=3)中**b为接受3,3的dict。
  5. python 类方法可以互相调用但注意加(self)参数。
  6. list 求交,差,并等操作,方法有很多,如果用变成set的方法的话就要要求list中没有重复的元素。
    c = list(set(lista).inersection(listb)) //求交用c = [item for item in lista if item in listb] 
    c = list(set(lista).difference(listb)) //求差,在a不在b.  用c = [item for item in lista if item not in listb]
    c = list(set(lista).union(listb)) //求并         
  7. hash:只能hash值改变id也会改变的对象(生存周期内不变的对象),list不可以,因为元素的值改变了,对象(该list对象)的id没有改变,但是a = 1 hash(a)是可以的,因为1是不变的a是指向了1,hash(a)实际上是hash(1)。

  8. 编写有中文报错,

    使用 :  # -*- coding:utf-8 -*-

  9. 除法是若要整数除法的结果为小数,则需要强制转换除数的类型。

  10. 注意缩进:用tab 和 空格键 二选一不能混用,混用会报错。

  11. filter:一个函数和一个序列把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。如filter(function,list),也就是这个function必须是返回值是true or false.

  12. copy: python用赋值号,对变量来说是拷贝,对list之类的就是引用了,使用时需要注意。有copy函数,copy.copy() 和copy.deepcopy().deepcopy是完整的复制,值相同但object不是同一个。copy就是原来的一个别名。

  13. list初始化为空,长度为n a = []*n

  14. extend(),在原list上增加另一个列表的每一个元素。

  15. list的remove()函数,remove(a)删除列表中第一个值为a的元素。

  16. index,index(a)找到第一个值为a的元素的下标。


原创粉丝点击