按单词反转字符串:保持每个单词内的字母顺序不变,只是将单词的顺序反转。例如:原来的字符串:That is a boy 反转后变为: boy a is That
def reverse_word(s): s1 = s.split() // 按照空格分割为列表 //print(s1) i, j = 0, len(s1)-1 while i < j: s1[i], s1[j] = s1[j], s1[i] i += 1 j -= 1 print(' '.join(s1)) //字符串已空格拼接 reverse_word('That is a boy wh')
给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0
?请你找出所有和为 0 且不重复的三元组。
def three_list(arr): n = len(arr) res = [] if n <3 : //如果数没有三个数 return None arr.sort() //从小到大排序 if sum(arr[::3]) >0 or sum(arr[-3:])<0: //判断数组最小三个数是否大于0和最大三个数是否小于0 return None for i in range(n-2): if arr[i] >0: // 判断数组第一个数是否大于0 return None if arr[i]+sum(arr[-2:])<0 or sum(arr[i:i+3])>0: continue if i>0 and arr[i] ==arr[i-1]: continue low = i+1 high = n-1 while low <high: count = arr[i] +arr[low]+arr[high] if count <0: low +=1 elif count >0: high -=1 else: mid = [arr[i],arr[low],arr[high]] if mid not in res: res.append(mid) low +=1 high -=1 print(res) three_list([1,-2,-1,0,3])
列表list、元组tuple、字典dict、集合set
1.基于连接与无连接 2.TCP要求系统资源较多,UDP较少; 3.UDP程序结构较简单 4.流模式(TCP)与数据报模式(UDP); 5.TCP保证数据正确性,UDP可能丢包 6.TCP保证数据顺序,UDP不保证
1、创建一个socket,用函数socket(); 2、设置socket属性,用函数setsockopt(); * 可选 3、绑定IP地址、端口等信息到socket上,用函数bind(); 4、开启监听,用函数listen(); 5、接收客户端上来的连接,用函数accept(); 6、收发数据,用函数send()和recv(),或者read()和write(); 7、关闭网络连接; 8、关闭监听;
本地代码实现
// 将web框架理解为服务端 import socket server = socket.socket() // TCP server.bind(('127.0.0.1',8082))// ip协议 以太网协议 server.listen(5) //池子 线程池 while True: conn,addr = server.accept() //建立客户端连接 data = conn.recv(1024) data = data.decode('utf-8') conn.send(b'HTTP/1.1 200 OK\r\n\r\n') current_path = data.split(' ')[1] if current_path == '/index': with open(r'01.html','rb') as f : //返回HTML 文件页面 conn.send((f.read())) elif current_path == '/login': conn.send(b'login heheh ') //获取字符串中特点的内容 else: conn.send(b'hellow wen') conn.close() //关闭监听
主机进程间通信:
管道
命名管道
消息队列
信号量
共享内存
不同主机间通信: 套接字