leiyu567567

内容回顾

re模块

  • findall 找到所有符合规则的项目,并返回列表
  • search 找到第一个符合规则的项,并返回一个对象
  • match 从头开始 找到第一个符合规则的项,返回一个对象
  • finditer 找到所有符合规则的项,并返回一个迭代器
  • compile 预编译一个正则规则,节省多次使用同一个正则的便宜时间
  • sub 替换 默认替换所有,可以使用替换深度参数
  • subn 替换 返回元组
  • split 根据正则规则切割,返回列表,默认不保留切掉的内容

分组

  • 分组命名

    (?P<组名>正则)
    
  • 引用分组

    (?P=组名)
    
  • findall和分组

    #优先显示分组中的内容
    (?:)取消这个分组的优先
    
  • split和分组

    split会保留正则中分组内匹配到的内容
    
  • search和分组

    #search分组中的内容
    	#通过索引取obj.group(1)
        #通过组名取obj.group(\'组名\')
    

元字符 量词 惰性符号

补充

  • [] [^] 带有特殊意义的元字符到了字符组内大部分都会取消它的特殊意义

    • 会取消

      [() + *  .]
      -   [(-)]     -的位置决定了它的意义,写在字符组的第一个位置/最后一个位置表示一个普通的横杠,写在字符组的其他任何位置都表示一个范围
      

正则指引

#找出<h1>123fh</h1><h2>hado</h2>中所有标签的字符串   一般用于爬虫
import re
res = re.findall(\'<.*?>(.*?)<.*?>\',\'<h1>123fh</h1><h2>hado</h2>\')
print(res)

#找出四则运算表达式中的第一个乘除法
#+-*/
\d+(\.\d+)?[*/]-?\d(\.\d+)?
import re
ret = re.search(\'\d+(\.\d+)?[*/]-?\d(\.\d+)?\',\'2-3*-5/6\')
print(ret.group())

#检查用户输入的内容是否是一个合法的身份证号    一般用于网页的合法输入(手机号码 qq号码  银行卡号  邮箱地址)
\'^[1-9]\d{14}(\d{2}[\dx])?$\'
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)
re.findall(\'^[1-9]\d{14}(\d{2}[\dx])?$\',inp)

今日内容

网络编程

https://www.cnblogs.com/Eva-J/articles/8244551.html

  • 网络基础
  • 基于tcp协议和udp协议的socket
  • 解决tcp协议的粘包问题
  • 并发问题

网络基础

  • 两个运行中的程序如何传递信息?

    • 通过文件

  • 两台机器上的两个运行中的程序如何通信?

    • 通过网络
  • 网络应用开发架构

    • C/S 迅雷 qq 浏览器 飞秋 输入法 百度云 pycharm git VNC 红蜘蛛 各种游戏
      • client 客户端
      • server 服务端
    • B/S 淘宝 邮箱 各种游戏 百度 博客园 知乎 豆瓣 抽屉
      • browser 浏览器
      • server 服务端
    • 统一程序的入口
    • B/S和C/S架构的关系
      • B/S是特殊的C/S架构
  • 网卡:是一个实际存在在计算机中的硬件

  • mac地址:是每一块卡上都拥有一个全球唯一的mac地址

  • 交换机:是连接多态机器并帮助通讯的物理设备,只认识mac地址

  • 协议:两台物理设备之间对于要发送的内容,长度,顺序的一些约定

  • IP地址

    • ipv4协议 4位的点分十进制 32位2进制表示

      • 0.0.0.0---255.255.255.255
    • ipv6协议 6位的冒号十六分进制 128位2进制表示

      • 0:0:0:0:0:0-----FFFF:FFFF:FFFF:FFFF:FFFF:FFFF

  • 公网IP

  • 为什么你的外地朋友的电脑为什么访问不了

    • 每一个ip地址要想被所有人访问到,那么这个ip地址必须是你申请的
  • 内网IP

    • 192.168.0.0-192.168.255.255
    • 172.16.0.0-172.31.255.255
    • 10.0.0.0 - 10.255.255.255

  • 交换机实现的arp协议

    • 通过IP地址获取一台机器的mac地址

  • 网关IP 一个局域网的网络出口,访问局域网之外的区域都要经过路由器和网关
  • 网段 指的是一个地址段 x.x.x.0 x.x.0.0 x.0.0.0
  • 子网掩码 判断两台机器是否在同一个网段内的
  • IP地址能够确认一台机器
  • Port 端口
    • 0-65535
  • IP + Port 确认一台机器上的一个应用

socket通信

server.py

import socket

sk = socket.socket()       #买手机
sk.bind((\'127.0.0.1\',9000))  #绑定卡号
sk.listen()                 #开机

conn,addr = sk.accept()             #等着接电话
conn.send(b\'hello\')
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()

分类:

技术点:

相关文章: