Pyhton学习——Day31】的更多相关文章

# 服务端和接收端的send和reve没有任何关系,只与协议之间有关系# 应用程序产生的数据一定会交给操作系统,并由操作系统往外发送# 发送端什么时候会清空自己的内存?# 收到接收端的ACK响应以后才会清除自己的缓存# 粘包的本质在于接收端在缓存接收,不知道从缓存区接收多少# 粘包的两种情况:1.发送间隔短,数据量小:2.接收数据量过大# 接收和发送数据一次不要超过8k(8096个字节),否则会失真# socket的sendall方法,MTU值最多能发送1500Bytes,就是说发送数据大时,按…
#多态:多态指的是一类事物有多种形态# import abc# class Animal(metaclass = abc.ABCMeta):# 同一类事物:动物# @abc.abstractclassmethod# def talk(self):# print('from Animal')# class People(Animal):#动物的形态之一:人# def talk(self):# print('from People')# class Dog(Animal):# def talk(se…
官方学习文档 https://docs.python.org/3/tutorial/…
1.把代码nester.py放入文件夹nester中,在文件夹中再新建一个setup.py文件,文件内容如下: from distutils.core import setup setup( name='nester', version='1.0.0', py_modules=['nester'], author='hfpython', author_email='hfpython@headfirstlabs.com', url='http://www.headfirstlabs.com', d…
Python开发IDE(工具)Pycharm.eclipse1.循环while 条件 #循环体 #条件为真则执行 #条件为假则执行break用于退出所有循环continue用于退出当前循环 2.Pycharm的run本质上是自动调用python使用的解释器 3.Python基本运算符 + - * / ** % 4.Python字符串#"一二三" 在Python种包含的是三个字符 name ="自动导入模板新"if "自动" in name: pr…
#上下文协议:文件操作时使用with执行# with open('a.txt','w',encoding='utf-8') as f1:# with语句,为了让一个对象兼容with语句,必须在这个对象的类中声明__enter__和__exit__方法# class Open:# def __init__(self,name):# self.name = name# def __enter__(self):# print('如果出现with语句,__enter__就被触发')# def __exi…
# hasattr(obj,'name')-->obj.name# getattr(obj,'name',default = 'xxx')--->obj.name# setattr(obj,'name','egon')--->obj.name = 'egon'# delattr(obj,'name')-->del obj.name# class Foo:# pass# f1 = Foo()# 类.文件.模块都可以使用反射机制# import Day15 as test# print…
#面向对象的几个方法#1.静态方法@staticmethod,不能访问类属性,也不能访问实例属性,只是类的工具包#2.类方法:@classmethod,在函数属性前加上类方法,显示为(cls)代表类,类能访问到数据属性和函数属性,不能访问至实例属性#3.静态属性:@property,把函数封装成一个数据属性的形式,让外部调用时看不到内部的逻辑:特点:定义时有self(实例本身)############################################################…
# #面向对象设计:# def dog(name,gender,type):# def jiao(dog):# print('One Dog[%s],wfwfwf'%dog['name'])# def walk(dog):# print('One Dog[%s] walking ' %dog['name'])# def init(name,gender,type):# dog1 = {# 'name':name,# 'gender':gender,# 'type':type,# 'jiao':j…
#re模块方法:findall search#findall:返回所有满足匹配条件的数值,放在列表里#search : #函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回一个包含匹配信息的对象,该对象可以 # 通过调用group()方法得到匹配的字符串,如果字符串没有匹配,则返回None.#match : 同search,不过仅在字符串开始出进行匹配import re# res = re.match('\d+','alex36wusir24')# print(res)# res = re…
#有缩进的代码表示局部作用域的代码#if_name_ =='_main_' # while True#先引入一个os模块import os,sys,time,json# print(os.path.dirname())#BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(_file_)))# sys.path.append(BASE_DIR) 不写死找到相对路径###################################…
# Python中的内部模块# 函数学习的意义:抽取重复代码# 模块:不用重复写,模块及py文件,提高了代码的可维护性,其次,编写代码不必从零开始,当一个模块编写完毕,不必再重复编写# import time#向外部引用一个文件#模块包含三种:1.python标准库:2.第三方模块:3.应用程序自定义模块#另外,使用模块还可以避免函数名和变量名冲突.相同名字的函数和变量完全可以分别存在不同的模块中,# 因此,我们自己在编写模块时,不必考虑名字会与其他模块冲突.但是也要注意,尽量不要与内置函数名字…
函数->功能, 如print(),input(),range(), 方法->功能, 如index()(尽量不用此方法),find(),类里面的函数就叫做方法 容器->列表,字符串,元组,字典,set集合. 模块-是可以调用的 appearance->通用的意思 标识符 ->变量,函数,类,文件等的名字 def->定义(define) 百分比转换 print("%.2f %%"(变量名 * 100)) import 导入类中的方法-->行为,功能…
同步方法的机制:synchronized,包括synchronized方法和synchronized块 同步方法:public synchronized void method(int args){ } synchronized方法控制对象的访问,每个对象对应一把锁,每个synchronized方法都必须获得调用该方法的对象的锁才能执行,否则线程会阻塞,方法一旦执行,就独占该锁,知道该方法返回才释放锁,后面被阻塞的线程才能获得这个锁,继续执行.默认锁定对象是this 缺陷:如果将一个功能庞大的方…
数据类型初识 1. 数字 整数:2是一个整数的例子 长整数 不过是大一些的整数 3.23和52.3E-4是浮点数的例子.E标记表示10的幂.在这里,52.3E-4表示52.3*10-4. (-5+4j)和(2.3-4.6j)是复数的例子,其中-5,4为实数,j为虚数,数学中用i表示虚数,j在工程领域表示虚数,python沿用了工程领域表示方法. int(整形) 32位机器中,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647 64位机器中,…
fileinput模块可以对一个或多个文件中的内容进行迭代.遍历等操作.该模块的input()函数有点类似文件readlines()方法,区别在于前者是一个迭代对象,需要用for循环迭代,后者是一次性读取所有行.     用fileinput对文件进行循环遍历,格式化输出,查找.替换等操作,非常方便. import fileinput for line in fileinput.input(): process(line) [基本格式]    fileinput.input([files[, i…
在Python中执行系统命令有os.system().os.popen().commands.getstatusoutput().subprocess.Popen等     1.os.system() Python中关于os.system的描述: >>> import os >>> help(os.system) system(command) -> exit_status Execute the command (a string) in a subshell.…
格式化 最后一个常见的问题是如何输出格式化的字符串.我们经常会输出类似'亲爱的xxx你好!你xx月的话费是xx,余额是xx'之类的字符串,而xxx的内容都是根据变量变化的,所以,需要一种简便的格式化字符串的方式. 在Python中,采用的格式化方式和C语言是一致的,用%实现,举例如下: >>> 'Hello, %s' % 'world' 'Hello, world' >>> 'Hi, %s, you have $%d.' % ('Michael', 1000000) '…
函数是python内建支持的一种封装,我们通过把打断的代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计,函数就是面向过程的程序设计的基本单元. 而函数式编程(请注意多了一个“式”字)——FUNCTIONAL PROGRAMMING,虽然也可以归结到面向过程的程序设计,但其思想更接近数学计算. 我们首先要搞明白计算机和计算的概念 在计算机的层次上,cpu执行的是加减乘除的指令代码.以及各种条件判断和跳转指令,所以,汇编语言是最贴近计算机的…
try/except/else语句 这些语句的一般的格式如下图所示 其中try中定义了主要执行的动作.except中定义了try语句当中发生异常的处理器.else定义了没有发生异常时候的处理器. try语句运行的方式:try语句启动的时候,pyton会标识当前的程序环境,如果有异常发生,才返回这里.try首行下面的语句先被执行,然后根据执行的程序的情况,发生下面不同的动作: -try里面的代码块的确发生异常,python就会跳回try,执行第一个符合引发异常的except字句下面的语句.当exc…
要求,通过用户名密码登录,登录错误3次,锁定用户名 # coding=utf-8 # Author: RyAn Bi import os, sys #调用系统自己的库 accounts_file = 'E:\\homework\\user.txt' # 存放用户名密码的位置 lock_file = 'E:\\homework\\lock.txt' #存放锁定用户名的位置 print('accounts_file:', accounts_file) ''' temp1 = open(account…
# li = [1,12,9,"age","alex"]# #列表表示为[]括起来# #列表用","分割每个元素# #列表中的元素可以是数字,可以是字符串,可以是列表,可以是布尔值,列表可以嵌套列表,嵌套的列表为一个外列表元素# #"集合",内部放置任何东西# #索引取值# print(li[3])#单个索引取到字符串# print(li[0:5])#切片结果也是列表# #for循环# #while循环# for item i…
1.什么是机器码?什么是字节码?机器码(machine code),学名机器语言指令,有时也被称为原生码(Native Code),是电脑的CPU可直接解读的数据. 通常意义上来理解的话,机器码就是计算机可以直接执行,并且执行速度最快的代码. 字节码(Bytecode)是一种包含执行程序.由一序列 op 代码/数据对 组成的二进制文件.字节码是一种中间码,它比机器码更抽象,需要直译器转译后才能成为机器码的中间代码. 通常情况下它是已经经过编译,但与特定机器码无关.字节码通常不像源码一样可以让人阅…
#################################################################################################################高阶函数的定义:#1.函数接收的参数是一个函数名#2.函数的返回值是一个函数名#3.满足上述条件的任意一个都可以称为高阶函数## import time# def foo():# time.sleep(3)# print('你好啊林师傅')## def test(func)…
# 1.文件内容如下,标题为:姓名,性别,年纪,薪资## egon male 18 3000# alex male 38 30000# wupeiqi female 28 20000# yuanhao female 28 10000## 要求:# 从文件中取出每一条记录放入列表中,# 列表的每个元素都是{'name':'egon','sex':'male','age':18,'salary':3000}的形式## 2 根据1得到的列表,取出薪资最高的人的信息# 3 根据1得到的列表,取出最年轻的…
#文件操作的其他方法 ###############################################################################文件的内置操作函数# 1.closed 查看文件是否是关闭的状态,输出为布尔值,关闭的为True,未关闭的为False# 2.encoding表示编码的形式,函数方法打开的编码形式# print(f.encoding)# cp936#*******************************************…
###########################################max函数############################################################### 1.max函数处理的是可迭代对象,相当于一个for循环取出每个元素进行比较.注意:不同类型的元素之间不能进行比较# 2.每个元素之间进行比较,是从每个元素的第一个位置一次比较,如果这一个位置分出大小,后面的就不再进行比较,直接比较该元素####################…
##############################################匿名函数##################################################### lambda x:x+1# def calc(x):# return x+1# calc(10)#用匿名函数来表示#####基本语法结构####lambda + 匿名函数的形参+函数表达处理公式(相当于函数的return)# lambda x:x+1# res = lambda x:x+1#…
# def test(x) : #形参:不占内存空间,调用函数时传入值,程序完成形参释放内存# # 注释内容# # 代码内容# y = x*2# print(y)# # return# # test(2)# 4 PS:位置参数必须在定义函数左边,必须一一对应# 默认参数在定义的时候直接调用函数设置的时候的默认值,而不设置函数的值# test(x,*args,**kwargs)*args **kwargs可以接收多个参数,*args接收列表,表示为元祖 **kwargs接收字典# 可以减少重复代码…
# s=set('hello')# print(s)## s=set(['alex','alex','sb'])# print(s) # s={1,2,3,4,5,6} #添加# s.add('s')# s.add('3')# s.add(3)# print(s) # s.clear()# print(s) # s1=s.copy() s={'sb',1,2,3,4,5,6}#随机删# s.pop() #指定删除# s.remove('sb')# s.remove('hellol') #删除元素…