python进阶笔记2

python网络编程

要进行网络通信需要进行通讯连接,在python中,使用socket套接字来建立连接。

客户端和服务端都是使用socket来建立连接。

服务端建立连接需要四步,新建socket,绑定ip和端口(bind),监听连接,接受连接。

import socket

server = socket.socket() # 1. 新建socket
server.bind(('127.0.0.1', 8999)) # 2. 绑定IP和端口(其中127.0.0.1为本机回环IP)
server.listen(5) # 3. 监听连接
s, addr = server.accept() # 4. 接受连接
print('connect addr:{}'.format(addr))
content =s.recv(1024)
print(str(content, encoding='utf-8'))  # 接受来自客户端的消息,并编码打印出来
s.close()

客户端建立连接只需要两步,新建socket,链接服务端。

import socket

client = socket.socket() # 1. 新建socket
client.connect(('127.0.0.1', 8999)) # 2. 连接服务端(注意,IP和端口要和服务端一致)
client.send(bytes('Hello World. Hello Socket', encoding='utf-8')) # 发送内容,注意发送的是字节字符串。
client.close()

python 自带http服务器

python -m http.server
#启动成功后
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...

接着就可以在浏览器输入127.0.0.1:8000,可以打开一个网页,会出现所有的运行目录文件列出来,并提供下载功能。

一般情况系会使用request包来进行http请求,安装requests

pip install requests

使用requests来请求 

response = requests.get('https://www.imooc.com')
# 打印状态码
print(response.status_code)
# 打印回应头
print(response.headers)
content = str(response.content, encoding='utf-8') # ==> 打印具体内容

python的函数式编程

python的map函数,map()函数会一次返回一个迭代器,可以一次返回处理的结果。

def f(x):
    return x*x

for item in map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9]):
    print(item)

python的reduce函数和map函数类似,一个函数f,一个list,但reduce函数传入的数据必须接受两个参数。在py3中reduce被收录到functools包里。

from functools import reduce

def f(x, y):
    return x + y

print(reduce(f, [1,3,5,7,9])) # ==> 25

 filter函数的作用是对每个元素进行判断。返回TRUE 或者False。filter根据判断过滤掉不符合条件的结果。并返回一个迭代器。可以迭代出符合条件的所有元素。

#奇数函数
def is_odd(x):
    return x % 2 == 1
#返回结果
for item in filter(is_odd, [1, 4, 6, 7, 9, 12, 17]):
    print(item)  ----1,7,9,17。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值