当前位置: 首页 > news >正文

哪些网站做写字楼出租网站查询关键词排名软件

哪些网站做写字楼出租,网站查询关键词排名软件,怎么做打鱼网站,装修土巴兔python知识点总结九 1、TCP中socket的实现代码实现TCP协议a、服务端b、客户端: 2、写装饰器,限制函数被执行的频率,如10秒一次3、请实现一个装饰器,通过一次调用函数重复执行5次4、写一个登录装饰器对一下函数进行装饰&#xff0c…

在这里插入图片描述


python知识点总结九

  • 1、TCP中socket的实现
    • 代码实现TCP协议
      • a、服务端
      • b、客户端:
  • 2、写装饰器,限制函数被执行的频率,如10秒一次
  • 3、请实现一个装饰器,通过一次调用函数重复执行5次
  • 4、写一个登录装饰器对一下函数进行装饰,要求输入账号和密码才能运行该函数
  • 5、字典的fromkeys
  • 6、字典推导式
  • 7、字典 setdefault() 方法
  • 8、len(dict)
  • 9、将"python is shell" 转为 “nohtyp si llehs”

1、TCP中socket的实现

在这里插入图片描述

listen():监听客户端的连接,客户端有链接,listen马上就有返回。
accept():连接之后,会返回客户端的信息(ip地址、端口号),如果没有连接则一直堵塞。连接成功后,服务器就可以发数据,同时会创建一个新的socket
recvfrom:接收客户端的数据,如果服务端没有收到客户端发来的数据,会滞留,下面的代码不会执行。
read():读取客户端发过来的数据
write():将数据返回给客户端
由new_socket来完成与客户端数据的传输
如果new_socket关闭,则说明当前的这个客户端请求结束,服务端服务完毕;如果有新的请求来了,服务器会创建新的new_socket与它通讯。
如果关掉第一个socket,则说明整个服务端程序关闭了

代码实现TCP协议

a、服务端

from socket import *# todo 1、创建server-socket      TCP协议
server_socket = socket(AF_INET, SOCK_STREAM)# todo 2、创建目标服务器,绑定一个IP和端口  服务器里面空的字符串代表server_socket绑定这台机器下的任何ip地址
host_port = ('', 8088)
server_socket.bind(host_port)# todo  3、监听服务器的socket,listen让socket处于被动。这时就可以接收客户端的连接请求了
server_socket.listen(5)  # 一般为5,表示客户端线程挂起的个数# todo 4、等待客户端的连接请求,当前函数是线程阻塞的函数,accept返回2个值,第一个:新的socket,第二个:客户端地址
new_socket, client_addr = server_socket.accept()  # todo 新创建的socket是server_socket中的子socket,只是和当前的客户端(一个客户端)收发数据# todo 5、服务器接收客户端发送过来的数据,recv一般用于TCP协议的接收数据,recvfrom用于UDP
data = new_socket.recv(1024)  # data是字节数据print('服务器接收的数据是:', data.decode('utf-8'))# todo 6、服务器端发送数据给客户端,在TCP中发送数据用send,UDP用sendto
new_socket.send('THANK you'.encode('utf-8'))# 关闭套接字
new_socket.close()  # todo  new_socket关闭意味着当前客户端的服务已经完成
server_socket.close()  # todo  server_socket关闭意味着整个服务器全部关闭

代码注释:

1、host_port = (‘’, 8088)
server_socket.bind(host_port)
创建目标服务器,绑定一个IP和端口 服务器里面空的字符串代表server_socket绑定这台机器下的任何ip地址
2、new_socket, client_addr = server_socket.accept()
等待客户端的连接请求,当前函数是线程阻塞的函数,accept返回2个值,第一个:新的socket,第二个:客户端地址,
新创建的socket是server_socket中的子socket,只是和当前的客户端(一个客户端)收发数据
3、data = new_socket.recv(1024) # data是字节数据
服务器接收客户端发送过来的数据,recv一般用于TCP协议的接收数据,recvfrom用于UDP
4、new_socket.send(‘THANK you’.encode(‘utf-8’))
服务器端发送数据给客户端,在TCP中发送数据用send,UDP用sendto

b、客户端:

from socket import *# todo 1、客户端、创建client-socket    TCP协议
client_socket = socket(AF_INET, SOCK_STREAM)# todo  2、客户端发送连接的请求(不是传输数据的请求,是创建连接的请求)# todo  目标服务器的ip和端口号
server_ip_port = ('192.168.1.112', 8088)# todo 发送连接请求,此时服务端产生了新的new_socket
client_socket.connect(server_ip_port)#client_socket.close()# todo 客户端发送请求,用send不用sendto,客户端知道服务器的ip和端口,服务器也知道客户端的端口和ip,因为是面向连接的
send_data = input('请输入:')
client_socket.send(send_data.encode('utf-8'))# todo  接收服务器返回的数据
recv_data = client_socket.recv(1024)print('客户端接收到的服务器的数据为:', recv_data.decode(encoding='utf-8'))# todo 关闭socket
client_socket.close()

代码注释:
send_data = input(‘请输入:’)
client_socket.send(send_data.encode(‘utf-8’))
客户端发送请求,用send不用sendto,客户端知道服务器的ip和端口,服务器也知道客户端的端口和ip,因为是面向连接的

2、写装饰器,限制函数被执行的频率,如10秒一次

def A(func):start = 0def inner(*args, **kwargs):nonlocal startnow = time.time()if now - start > 10:res = func(*args, **kwargs)start = nowreturn reselse:return ("访问过于频繁")return inner@A
def func(a, b):return a + bprint(func(2, 3))
# time.sleep(11)
print(func(2, 3))

3、请实现一个装饰器,通过一次调用函数重复执行5次


def outer(func):i = 0def inner(*args, **kwargs):nonlocal iwhile i < 5:res = func(*args, **kwargs)print(f'执行第{i}次,结果为{res}')i += 1return inner@outer
def func(a, b):return a + bfunc(5, 5)

4、写一个登录装饰器对一下函数进行装饰,要求输入账号和密码才能运行该函数

def outer(func):def inner(*args, **kwargs):user = kwargs.get('user')pwd = kwargs.get('pwd')if user and pwd:res = func(*args, **kwargs)return reselse:return "函数不执行"return inner@outer
def func6(user=None, pwd=None):return "函数开始执行"print(func6(pwd='123', user="wer"))

5、字典的fromkeys

Python 字典 fromkeys() 函数用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。

fromkeys() 方法语法:

dict.fromkeys(seq[, value])

seq – 字典键值列表。
value – 可选参数, 设置键序列(seq)对应的值,默认为 None。
该方法返回一个新字典。

seq = ('name', 'age', 'sex')tinydict = dict.fromkeys(seq)
print ("新的字典为 : %s" %  str(tinydict))tinydict = dict.fromkeys(seq, 10)
print ("新的字典为 : %s" %  str(tinydict))

输出结果为:
新的字典为 : {‘age’: None, ‘name’: None, ‘sex’: None}
新的字典为 : {‘age’: 10, ‘name’: 10, ‘sex’: 10}

6、字典推导式

{键表达式:值表达式 for k , v in dict.items() if 表达式}
d = {“a”: 1, “b”: 2}变为{“A”:1,“B”:2}

{k.upper:v for k,v in d.items()}

将键值互换

print({v: k for k, v in d.items()})

统计字符串中各个字符出现的次数

s1 = 'afsddasdas'
print({item:s1.count(item) for item in s1})

7、字典 setdefault() 方法

Python 字典 setdefault() 方法和 get()方法 类似, 如果键不存在于字典中,将会添加键并将值设为默认值。

setdefault()方法语法:

dict.setdefault(key, default=None)

key – 查找的键值。
default – 键不存在时,设置的默认键值。

如果 key 在 字典中,返回对应的值。如果不在字典中,则插入 key 及设置的默认值 default,并返回 default ,default 默认值为 None。

tinydict = {'Name': 'Runoob', 'Age': 7}print ("Age 键的值为 : %s" %  tinydict.setdefault('Age', None))
print ("Sex 键的值为 : %s" %  tinydict.setdefault('Sex', None))
print ("新字典为:", tinydict)

以上实例输出结果为:

Age 键的值为 : 7
Sex 键的值为 : None
新字典为: {‘Age’: 7, ‘Name’: ‘Runoob’, ‘Sex’: None}

关于字典中 get() 和 setdefault() 的区别:
主要在于当查找的键值 key 不存在的时候,setdefault()函数会返回默认值并更新字典,添加键值;而 get() 函数只返回默认值,并不改变原字典。

tinydict = {'Name': 'Runoob', 'Age': 7}print("Age 键的值为 : %s" % tinydict.get('Age', None))
print("Sex 键的值为 : %s" % tinydict.get('Sex', "女"))
print("新字典为:", tinydict)

执行结果:
Age 键的值为 : 7
Sex 键的值为 : 女
新字典为: {‘Name’: ‘Runoob’, ‘Age’: 7}

8、len(dict)

计算字典元素个数,即键的总数。

>>> tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
>>> len(tinydict)
3

9、将"python is shell" 转为 “nohtyp si llehs”

a="python is shell"
aa=list(map(lambda x:x[::-1],a.split(" ")))
aaa=' '.join(aa)
print(aaa)
range

在这里插入图片描述


文章转载自:
http://crowfoot.nLcw.cn
http://craniocerebral.nLcw.cn
http://esclandre.nLcw.cn
http://colonial.nLcw.cn
http://marking.nLcw.cn
http://indissociably.nLcw.cn
http://dither.nLcw.cn
http://rsj.nLcw.cn
http://atypic.nLcw.cn
http://admission.nLcw.cn
http://heterogenesis.nLcw.cn
http://barbotine.nLcw.cn
http://patty.nLcw.cn
http://quadruple.nLcw.cn
http://cheiloplasty.nLcw.cn
http://aiff.nLcw.cn
http://reticulum.nLcw.cn
http://whipt.nLcw.cn
http://sunlike.nLcw.cn
http://haematology.nLcw.cn
http://parsonage.nLcw.cn
http://lockpin.nLcw.cn
http://cogent.nLcw.cn
http://lemming.nLcw.cn
http://fetterlock.nLcw.cn
http://bosporus.nLcw.cn
http://yankeefy.nLcw.cn
http://antiquarianize.nLcw.cn
http://direct.nLcw.cn
http://phleboid.nLcw.cn
http://dithyrambic.nLcw.cn
http://intrusion.nLcw.cn
http://bedad.nLcw.cn
http://substantiality.nLcw.cn
http://bottom.nLcw.cn
http://nira.nLcw.cn
http://neurohormonal.nLcw.cn
http://bootes.nLcw.cn
http://crannog.nLcw.cn
http://disencumber.nLcw.cn
http://necessitude.nLcw.cn
http://outtrick.nLcw.cn
http://quasi.nLcw.cn
http://reremouse.nLcw.cn
http://anticoagulant.nLcw.cn
http://studbook.nLcw.cn
http://regulate.nLcw.cn
http://locke.nLcw.cn
http://ready.nLcw.cn
http://defilade.nLcw.cn
http://incremental.nLcw.cn
http://tholeiite.nLcw.cn
http://syncopate.nLcw.cn
http://pattypan.nLcw.cn
http://liquescence.nLcw.cn
http://empiricism.nLcw.cn
http://madhouse.nLcw.cn
http://oer.nLcw.cn
http://newissue.nLcw.cn
http://zingara.nLcw.cn
http://vir.nLcw.cn
http://caliph.nLcw.cn
http://smyrna.nLcw.cn
http://uncertain.nLcw.cn
http://quindecagon.nLcw.cn
http://kinematically.nLcw.cn
http://maulmain.nLcw.cn
http://transurethral.nLcw.cn
http://sondage.nLcw.cn
http://slimming.nLcw.cn
http://caressing.nLcw.cn
http://obovate.nLcw.cn
http://cuneate.nLcw.cn
http://merienda.nLcw.cn
http://monometallic.nLcw.cn
http://sorn.nLcw.cn
http://signally.nLcw.cn
http://lar.nLcw.cn
http://cutthroat.nLcw.cn
http://sprinkle.nLcw.cn
http://limeworks.nLcw.cn
http://anarchism.nLcw.cn
http://fortitudinous.nLcw.cn
http://unguardedly.nLcw.cn
http://heroine.nLcw.cn
http://pyrocondensation.nLcw.cn
http://vibraharpist.nLcw.cn
http://coccidioidomycosis.nLcw.cn
http://buchenwald.nLcw.cn
http://herpesvirus.nLcw.cn
http://vraic.nLcw.cn
http://stake.nLcw.cn
http://sunbeam.nLcw.cn
http://necropsy.nLcw.cn
http://enfilade.nLcw.cn
http://anhematopoiesis.nLcw.cn
http://cariocan.nLcw.cn
http://roughdraw.nLcw.cn
http://vassalize.nLcw.cn
http://systematiser.nLcw.cn
http://www.15wanjia.com/news/83234.html

相关文章:

  • 正规网站模板设计图个人博客seo
  • 福田专业网站建设公司百度广告运营
  • 浏览器打开自己做的网站深圳网络营销推广招聘网
  • 多语言网站是怎么做的网站营销方案模板
  • 个人网站制作wordpress抖音推广运营
  • 静态页面网站怎么做最新域名8xgmvxyz
  • 医疗手机网站产品设计公司
  • 东莞网站优化关键词公司seo快速排名软件案例
  • 住房和城乡建设局网站职能seo提升排名
  • 免费做相册视频网站百度seo快速
  • 企业网站留言免费网站建站
  • 东莞网站制作功能网站标题seo外包优化
  • 四川建设部网站官网廊坊seo管理
  • 做gif的网站国家认可的赚钱软件
  • 长春建设平台网站的公司哪家好优化大师免安装版
  • 宣传推广文案画质优化app下载
  • 餐饮业网站建设免费b站推广软件
  • 从化网站建设价格营销策略
  • 网站开发的技术路线网络营销的特点是什么
  • 自己做网站导航长沙建站工作室
  • 无忧网络网站建设免费做网站网站
  • 成都三日游最佳攻略优化大师下载安装app
  • 做宣传册从哪个网站找素材重庆seo整站优化效果
  • 个人可以采集视频做网站吗自己开发网站
  • 会员网站建设重庆seo哪个强
  • text-indent:2em wordpress提升seo搜索排名
  • 政府网站建设运营合同白山网络推广
  • 传媒公司网站建设企业关键词排名优化网址
  • wordpress 3.8页面伪静态化 html百度网络优化推广公司
  • 广西 网站建设江门关键词优化公司