python

编译型语言代表有:C语言
通常都会对源代码进行编译,生成可以执行的二进制代码,执行的是编译后的结果
Python是解释型语言
通常不用对源代码进行编译,一般是通过解释器载入脚本后运行。
Java具有编译与解释两种特性

深浅拷贝

深拷贝:增加一个指针并且开辟了一个新的内存
将对象本身赋值给另一个对象,对副本进行更改时不会影响原对象。
a=3
b=copy.deepcopy()
浅拷贝:只是增加一个指针指向一个存在的地址
对副本进行更改时会影响原对象
a=3
b=a. copy()

列表是可变的,元祖是不可变得 、字典可变的

不可变数据类型:数值型 字符串型 元组型
值改变,相当于建立一个对象,而对于相同值得对象,在内存中则只有一个地址

a=3
b=3
id(a)
12345685
id(b)
12345685

可变数据类型:列表 字典
允许变量的值发生改变,及对变量进行append += 操作后,只是改变了变量的值,而地址不会发生改变。

三元表达式

[on true] if [expression] else [on false]

help()和dir()

help() 返回帮助文档和参数说明
dir()返回对象中的所有成员

如何打乱列表中的元素

random包中的shuffle()函数

join() 连接字符串
split() 按指定字符分了字符串
lstrip() 去掉前置空格
lower()和upper() 大小写转换
islower()和isupper() 大小写判断

os
sys
re
math
datetime

一句话解释什么样的语言能够用装饰器?

函数可以作为参数传递的语言,可以使用装饰器

简述面向对象中newinit区别

new():用来控制对象的生成过程,在对象生成之前调用
init():用来对对象进行完善,在对象生成之后调用
如果new()函数不返回对象,就不会调用init()函数

[i for i in res if i>10]

select distinct name from studnet
lambda x,y:x*y
list=a.split(" ")
res=re.findall('\d+|[a-zA-Z]+',a)

1字节=8位
数据存储 字节
数据传输 位(0|1)

PE8规范
递归的最大层数 998

is 内存地址是否相同
== 内容是否相同

filter:做筛选
map:迭代对象中的每一项

迭代类型可以使用循环来进行遍历

类方法 实例方法 静态方法
class Demo(object):
  #类方法
  @classmethod
  def class_method(cls,number):
    pass
  #静态方法
  @staticmethod
  def ctstic_method(number):
    pass
  #实例方法
  def object_method(self,number):
    pass
列表推导式
my_list=[i for i in range(10)]
my_list=[x for x in range(9) if x%2==0]

def func(num):
  return num*num

my_lis=[func(x) for x in range(9) if x %2==0]
生成器表达式
gen=(i for i in range(10))
字典推导式
d={
  'tom':18,
  'alice':16,
  'bob':20
}
dic={key:value for key,value in d.items()}
Python的特点

1.解释性语言,运行前不需要编译。
2.动态型,声明变量时,不需要声明变量的类型。
3.适合面向对象的编程,允许类的定义以及组合和继承
4.运行快

Python3 实现单例模式

1.使用new

class Singleton(object):
  __instance =None
  def __new__(cls,*args,**kwargs):
    if not cls.__instance :
        cls.__instance = super().__new__(cls,*args,**kwargs)
    return cls.__instance

a=Singleton()
b=Singleton()
print(a==b)
print(id(a)==id(b))

>>>
True
True
一句好解释什么样的语言可以用装饰器

函数可以作为参数传递的语言

你可能感兴趣的:(python)