1.单词顺序反转字符串
按单词反转字符串:保持每个单词内的字母顺序不变,只是将单词的顺序反转。例如:原来的字符串: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')
2.三个数相加为0
给你一个包含 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])
3.python 数据结构
列表list、元组tuple、字典dict、集合set
4.TCP与UDP基本区别
1.基于连接与无连接
2.TCP要求系统资源较多,UDP较少;
3.UDP程序结构较简单
4.流模式(TCP)与数据报模式(UDP);
5.TCP保证数据正确性,UDP可能丢包
6.TCP保证数据顺序,UDP不保证
5.TCP编程的服务器端一般步骤是:
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() //关闭监听
6.进程通信方式
主机进程间通信:
管道
命名管道
消息队列
信号量
共享内存
不同主机间通信: 套接字