No.27网络基础

时间:2020-03-28 11:22:56   收藏:0   阅读:45

No.27

今日概要

内容回顾

1.re模块

2.分组

3.补充

4.习题

#1 找出<h1>123fh</h1><h2>hado</h2>中所有标签内的字符串
import re
ret = re.findall(‘<.*?>(.*?)<.*?>‘, ‘<h1>123fh</h1><h2>hado</h2>‘)
print(ret)

#2 找出四则运算表达式中的第一个乘除法
\d+(\.\d+)?[*/]-?\d(\.\d+)

#3 检测用户输入的内容是否是一个合法的身份证号
import re
inp = input(‘>>>‘).strip()
re.match(‘[1-9]\d{14}(\d{2}[\dx])?$‘, inp)
re.search(‘^[1-9]\d{14}(\d{2}[\dx])?$‘, inp)

内容详细

1.网编框架

2.网络基础

2.1网络应用开发架构

技术分享图片

技术分享图片

2.2网络基础知识

技术分享图片

技术分享图片

技术分享图片

2.3socket模块

目录结构

# server.py
import socket
sk = socket.socket()     # 买手机
sk.bind((‘127.0.0.1‘, 9000)) # 绑定卡号 127.0.0.1永远表示当前使用机器的地址,不通过交换机。
sk.listen()              # 开机
conn, addr = sk.accept() # 等着接电话
conn.send(b‘hellow‘)     # 讲话
msg = conn.recv(1024)    # 收听
print(msg)
conn.close()  # 挂电话
sk.close()    # 关机
# client.py
import socket
sk = socket.socket()
sk.connect((‘127.0.0.1‘, 9000))
msg = sk.recv(1024)
print(msg)
sk.send(b‘byebye‘)
sk.close()
# 习题
‘‘‘
编程计算器
n = ‘1-2*((60-30+(-45/5)*(9-2*5/3+7/3*99/4*2998+10*568/14)) - (-4*3)/(16-3*2))‘
‘‘‘

匹配最内层的表达式
\([^()]+\)
匹配乘除法
\d+(\.\d+)?[*/]-?\d+(\.\d+)?
匹配加减法
\d+(\.\d+)?[+-]-?\d+(\.\d+)?

def mul_div(exp):
    # ‘1*2‘ ‘1/2‘ ‘1.2*2.4‘
    pass

def func(exp):
    # 1+2*4/5
    # 把第一个乘法或者除法找出来,然后交给mul_div函数计算得到结果。  
    # 再用结果替换原算式 1+2*4/5
    # 循环上面过程,直到把所有的乘除法计算完成。
    
进阶需求:
	如何解决加减法?
	如何去括号?
	如何处理复杂的符号?

原文:https://www.cnblogs.com/elliottwave/p/12586207.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!