Python基础
谁动了我的数据库!
bug与你同在
展开
-
文件操作
#打开文件 open#参数encoding指定文件编码fobj=open(’./Test.txt’,‘w’,encoding=‘utf-8’)#参数’w’如果没有这个文件就创建一个# ,如果存在就覆盖#开始读写操作fobj.write(‘羌笛何须怨杨柳,’)#写入操作fobj.write(‘春风不度玉门关。’)fobj.close()#关闭这个对象#以二进制的形式去写数据fobj=open(‘Test.txt’,‘wb’)#str–>bytesfobj.write(‘羌笛何须怨杨柳原创 2021-03-10 15:10:55 · 263 阅读 · 0 评论 -
内存优化
a=10000b=10000print(id(a))print(id(b))del a,b #删除a,b对象c=10000print(id©)#大整数池和小整数池的区别是:1从结果来看是一样的2大整数池是没有提前的创建好对象,是个空池子,需要我们自己去创建创建好之后,会把整数对象保存到池子里面,后面都不需要再创建了直接拿来使用小整数池是提前将[-5,256]的数据都提前创建好...原创 2021-03-07 18:37:00 · 204 阅读 · 0 评论 -
垃圾回收
import sys #调用计数模块import psutilimport osimport gc #垃圾回收模块print(gc.get_threshold())#gc垃圾回收阈值def showMenSize(tag):pid=os.getpid()p=psutil.Process(pid)info=p.memory_full_info()memory=info.uss/1024/1024print(’{} memory used:{} MB’.format(tag,memory))原创 2021-03-08 14:14:15 · 209 阅读 · 0 评论 -
def
def a():print(‘a’) #函数代码块print(‘b’)print(‘c’)passa() #函数调用def admin(name,password,id,aa): #参数定义print(’%s的名字密码%f’%(name,password))print(’%s的名字id是%f’%(name,id))pipassadmin(‘admin’,123,1,‘dd’) #参数赋值 有参数必须赋值def sum(a,b): #形式参数 只是意义上的一种参数,在定义的时候是不占内存原创 2021-03-06 17:09:27 · 429 阅读 · 0 评论 -
组
a=‘abcd’print(‘打印第一个字符%s’%a[0])for i in a:print(i,end=’ ')a=’ name ’print(a)print(a.strip())#去除空格print(a.lstrip())#去除左边空格print(a.rstrip())#去除右边空格a=‘name’b=aprint(‘a的内存地址%d’%id(a))#id函数可查看一个对象的内存地址print(‘b的内存地址%d’%id(b))a =‘abcd’print(a.fi原创 2021-03-08 14:14:27 · 238 阅读 · 0 评论 -
字典
a={1:‘a’,2:‘b’}print(type(a))#字典类型 <class ‘dict’>a[‘name’]=‘a’#key:valueprint(a)print(len(a))#获取长度print(a[1])#通过键获取值a[1]=‘bb’ #修改指定键的值print(a)print(a.keys())#获取键print(a.values())#获取值print(a.items())#获取所有的项的键值for key,value in a.items():pri原创 2021-03-08 14:14:36 · 193 阅读 · 0 评论 -
元组
#元组不可修改的组a=(1,2,3,4,[1,2])#print(type(a))#<class ‘tuple’> 元组for i in a:print(a,end=’ ')print(a[1:3]) #取值print(a[::-2]) #去反向间隔为2的值a=(1,)#这是一个元组a=(1)#这不元组原创 2021-03-10 15:12:42 · 304 阅读 · 0 评论 -
属性
属性:类属性和实例属性#类属性就是类对象所拥有的属性class admin:name=‘admin’ #属于类属性 就是admin类对象所拥有的的属性def init(self,age):self.age=age #实例属性passpassa=admin(22)admin.name=‘root’#通过类对象去修改数据print(a.name)print(a.age)print(‘通过类对象admin 访问name___’)print(admin.name)#类属性是可以被类对象和原创 2021-03-10 15:12:55 · 282 阅读 · 0 评论 -
匿名
#匿名函数#语法lambda 参数1,参数2,参数3,:表达式#特点#使用lambda关键字去创建#没有名字的函数#匿名函数冒号后面的表达式有且只有一个#匿名函数自带return,而这个return的结果就是表达式计算后的结果#lambda缺点#lambda只能是单个表达式#只能封装有限的逻辑,复杂必须使用defdef sum(x,y):return x+yprint(sum(1,2))sum=lambda x,y:x+y#通过变量调用匿名函数print(sum(1,2))原创 2021-03-10 15:13:07 · 440 阅读 · 0 评论 -
继承
class admin:def chi(self):print(‘chi’)passdef he(self):print(‘he’)passpassclass dog(admin):#继承父类admin的属性def name(self):print(‘dog’)passpass# 他需要:# 把内容封装到某个地方# 从另外一个地方去调用被封装的内容# 对于封装来说其实就是使用初始化构造方法将内容封装到对象中,然后通过对象直接或者self来# 获取被封装的内容class原创 2021-03-10 15:13:59 · 167 阅读 · 0 评论 -
函数
#内置函数#abs取绝对值print(abs(15))#round取近似的值print(round(1.7))#,后是保留小数的位print(round(3.1415,2))#pow求次方print(pow(3,3))print(3**3)#max返回最大值print(max([1,2,3,4,5]))#sum使用print(sum(range(10),2))#eval 执行表达式a,b,c=1,2,3print(‘动态执行的函数%d’%eval(‘a+b+c’))#类型转原创 2021-03-06 17:11:17 · 733 阅读 · 0 评论 -
多态
多态:顾名思义就是多种状态、形态,就是同一种行为对于不同的子类[对象] 有不同的行为表现要想实现多态必须的有两个前提需要遵守:1、继承:多态必须发生在父类和子类之间2、重写:子类重写父类的方法class Animal:def say_who(self):print(’******’)passpassclass Duck(Animal):def say_who(self):print(‘aaaaaa’)passpassclass Dog(Animal):def say_who(原创 2021-03-06 17:11:07 · 205 阅读 · 0 评论 -
list
a=[1,2,3,‘aaa’]print(len(a))#可以获取列表中的数据个数print(type(a))#判断是否是list列表a=[1,2,3,[‘aa’,‘bb’],4]print(a*2)#输出两次表中数据print(a[1:4])a.append([‘cc’,‘dd’])#追加print(a)a.insert(1,‘a’)#制定位置追加print(a)b=list(range(10))#强制转换为list对象a.extend(b) #extend批量添加print(a)原创 2021-03-06 17:10:55 · 204 阅读 · 0 评论 -
init_方法
init_方法:初始化一个类,在创建实例对象为其赋值时使用。_str_方法:在将对象转换成字符串str(对象) 测试的时候,打印对象的信息。class Cat:“”“定义一个猫类”""def init(self, name, age):self.name = nameself.age = ageprint(‘init函数执行’)passdef str(self): #return “名字是:%s , 年龄是:%d” % (self.name, self.age)passdef new原创 2021-03-06 17:10:36 · 9103 阅读 · 0 评论 -
if
import random #直接导入产生随机数的模块person=int(input(“0,1,2”))computer=random.randint(0,2) #指定一个0到2的随机数if person0 and computer1:print(‘yes’)pass #空代码句elif person1 and computer2:print(‘yes’)passelif person2 and computer0:print (‘yes’)passelif person==com原创 2021-03-06 17:10:28 · 177 阅读 · 0 评论 -
for
range 此函数可以生成一个数据集合列表range(起始:结束:步长)步 长不能为0sum=1for data in range(0,101):sum+=datapassprint(“sum=%d”%sum)break和cont inuebreak 代表中断结束#满足条件直接的结束本层循环continue :结束本次循环,继续的进行下次循环(当continue的条件满足的时候本次循环剩下的语句将不在执行#后面的循环继续)#这两个关键字只能用在循环中sum =0for i in原创 2021-03-06 17:10:17 · 245 阅读 · 0 评论 -
del
class admin:def init(self,name):self.name=nameprint (‘初始化方法’)passdef del(self):print(‘析构方法’)print(‘当在某个作用域下面没有被使用[引用]的情况下解析器会自动的调用此函数来释放内存空间’)print(’%s这个对象内存被释放’%self.name)passpasscat =admin(‘tom’)del cat #手动释放这个对象input(‘程序等待中…’)bob = admin(‘原创 2021-03-06 17:09:44 · 214 阅读 · 0 评论 -
__new__def
class Color:def init(self):self.color=‘红色’pass# 在python当中e如果不重写__new__默认结构如下def __new__(cls, *args, **kwargs): return super.__new__(cls, *args, **kwargs) #return object.__new__(cls, *args, **kwargs)passc=Color()#实例化的过程会自动调用__new__ 去 创建实例c.原创 2021-03-06 17:08:13 · 232 阅读 · 0 评论