[oeasy]python0054_三引号_原样显示字符串_triple_quoted

三引号

回忆上次内容

  • \ 首先是转义字符
    • 可以 和别的字符 构成转义序列
  • \a是 ␇ (bell),
  • \b 退回一格
  • \t 水平制表符
  • \v\f LineFeed
  • \\ 输出 \
  • \" 输出 "
  • \' 输出 '
  • \xhh 通过 16 进制数值转义
  • \nnn 通过 8 进制数值转义
  • \ 还是 续行字符
    • 放在 行尾
    • 可以让 下一行和本行 连成一行

  • 有 什么方法 让字符串
    • 原样输出吗??

搜索STRINGS的帮助

  • 三引号 引用的
    • triple-quotes
    • 可以 原样输出

试炼

  • 先试试 回车符

  • 去看看
    • 三引号 的 帮助手册

查看参考

  • 在 帮助模式下
    • 查找"“”

  • 在 三引号 引用中
    • 换行符 和 引号
      • 都会被 原样显示

重温

  • 转义练习
    • 如果 没有转义的话
      • 会报错
    • 不知 字符串 何时结束

  • 把 这些转义 应用起来

  • 如果 上面 最后这句话
    • 用三引号输出的话
    • 应该怎么写?
  • 不要翻页

三引号输出

  • 引号、回车的问题 都自动解决
    • 但是反斜杠(\) 还是 需要转义

三引号输出

  • 除了反斜杠 需要转义 之外
    • 其余 都可以 原样输出

三引号原样输出

  • 输出 帮助文件

  • 输出 网页文件

  • 回车和tab
    • 都可以 原样保留
  • 能否 原样输出 一些好玩的
    • cowsay之类的东西
    • 都放到 三引号里面
  • 可以试试吗??

走起来

sudo apt install cowsay
echo "oeasy" | cowsay -f turtle > t.py
vi t.py

  • 用 vim 打开 t.py

修改

  • 前后加上print 函数 和 三引号

  • 尝试运行

处理

  • 运行结果
    • 海龟会坍塌

  • 问题在于 结尾处的反斜杠
    • 这反斜杠 本是龟壳的一部分
    • 由于在行尾
    • 被理解为了 "续行符"

  • 需要明确地 写出反斜杠
    • 1反斜杠(\)
      • 代表着 转义续行
    • 2反斜杠(\\)
      • 才代表着 反斜杠这个字符
  • 要把 个反斜杠
    • 替换为 个反斜杠
    • 怎么 替换 呢?

批量替换

  • 分析一下替换语句

  • :%s/\\/\\\\/g
    • : 表示进入 命令行模式 执行命令
    • % 表示 从第一行到最后一行 全范围执行命令
    • s 表示 substitute 查找替换
    • 查找内容和替换内容 用/隔开
      • 查找内容是\\
        • 反斜杠本身 是 转义字符
          • 表示反斜杠这个字符 需要两个反斜杠
          • \\ 代表1个反斜杠
      • 替换内容是\\\\
        • \\ 代表一个反斜杠
        • \\\\ 代表2个反斜杠
    • g
      • global
        • 每行中查找不止一次

换后效果

  • 替换之后 什么效果

最终效果

  • 可以让海龟说话了!
  • 三引号(triple quote)从词源上如何理解呢?

triple

  • tri 来自于 three
  • ple 来自于 plus

  • triple 是 三倍的、三重的

tri-

  • trickle
    • 三水滴、涓涓细流
  • trifle
    • 琐事、小事

总结

  • 这次讲了 三引号的输出
  • 三引号中
    • 回车和引号 都会 被原样输出
    • \ 还是需要从 \\转义
  • 黑暗森林 快被摸排清了
    • 还有哪个 转义序列
      • 没 研究过吗??

  • \e是 干什么的??
  • 我们下次再说!?
  • 蓝桥->https://www.lanqiao.cn/courses/3584
  • github->https://github.com/overmind1980/oeasy-python-tutorial
  • gitee->https://gitee.com/overmind1980/oeasypython
  • 视频->https://www.bilibili.com/video/BV1CU4y1Z7gQ 作者:oeasy
本文转载于网络 如有侵权请联系删除

相关文章

  • Oracle数据库之SQLPLUS详解

    三、SQLPLUS​SQLPlus是Oracle数据库提供的一个专门用于数据库管理的交互式工具,使用SQLPlus可以管理Oracle数据库的所有任务,SQLPlus通过命令的方式对数据库进行管理,也可以通过SQLPlus执行SQL语句的操作。3.1、SQLPlus设置​如果要想了解sqlplus命令,首先要解决一个新的问题:数据问题。​在Oracle12C中由于存在了CDB和PDB概念,所以所谓的测试数据,默认是找不到的,所以下面必须首先针对数据做一个恢复。​在D:\app\Oracleuser\product\12.1.0\dbhome_1\RDBMS\ADMIN目录之中提供有一个scott.sql的创建脚本,但是这个脚本需要修改,而且要想会修改肯定要学习完后面的高级内容,所以为了方便学习,这里提供了一个c##scott.sql的文件,虽然名称是c##scott,本质还是scott。c##scott.sql脚本文件代码:--使用超级管理员登录 CONNsys/change_on_installASSYSDBA; --创建c##scott用户 CREATEUSERc##scottI

  • ABAP 动态内表分组循环

    在ABAP中使用动态内表分组循环时,如果直接atendof或groupby会报错。 Atendof:LOOPAT<dy_table>ASSIGNING<dyn_wa>. ATENDOFbelnr. ENDAT. ENDLOOP.复制Groupby:LOOPAT<dy_table>ASSIGNING<dyn_wa>GROUPBY(belnr=<dyn_wa>-belnr)ASCENDINGASSIGNINGFIELD-SYMBOL(<group>). ENDLOOP.复制这样是因为<dyn_wa>是通用类型,只有assignging后才有类型。 解决方法:LOOPAT<dy_table>ASSIGNING<dyn_wa>. ASSIGNCOMPONENT'BELNR'OFSTRUCTURE<dyn_wa>TO<fs_belnr>. ATENDOF<fs_belnr>. ENDAT. ENDLOOP.复制亲测有效。

  • CSS过渡动画之transition

    O(∩_∩)O~这两天在看看CSS的相关内容,关于transition动画感觉很有意思,分享一下。CSS负责给html加效果,自然少不了各种动画,今天介绍一下transition。概述看一段比较学术的定义:transition主要负责页面的过渡效果,transition可以使css的属性值在一定时间内平滑地过渡。这种效果可以在鼠标划过、点击、获得焦点或者对元素的任何改变中触发,并平滑地以动画效果改变css的属性值。transition的几个常用属性1.transition-property:设置哪些属性进行过渡。2.transition-duration:完成过渡动画需要的时间,默认为零。3.transition-timing-function:设置动画的缓冲效果,默认是ease(逐渐变慢)。其他常用的几个值有ease-in(加速),ease-out(减速),ease-in-out(先加速后减速)。4.transition-delay:设置动画开始的延迟时间,默认是零。ps:实际应用中,可以将四个属性简写到一条指令:transition:propertydurationtiming-f

  • 统计学学术速递[7.26]

    访问www.arxivdaily.com获取含摘要速递,涵盖CS|物理|数学|经济|统计|金融|生物|电气领域,更有搜索、收藏、发帖等功能!点击阅读原文即可访问stat统计学,共计33篇【1】JointShapleyvalues:ameasureofjointfeatureimportance 标题:关节Shapley值:关节特征重要性的度量 作者:ChrisHarris,RichardPymar,ColinRowat 机构:VisualAlpha,Tokyo,Japan,Economics,MathematicsandStatistics,BirkbeckCollegeUniversityofLondon,UK,UniversityofBirmingham,UK 备注:SourcecodeavailableatthishttpsURL 链接:https://arxiv.org/abs/2107.11357 摘要:Shapley值是可解释人工智能中最广泛使用的特征重要性的模型不可知度量之一:它有明确的公理基础,保证唯一存在,并且作为特征对模型预测的平均影响有明确的解释。我们引入了联合S

  • networking-sfc deep dive 1

    介绍SFC全称servicefunctionchain,RFC7665ServiceFunctionChaining(SFC)Architecture对SFC的体系做了很详细的介绍。endtoend流量中间要有序经过firewall,NAT,IDS等网络功能单元,对这些网络功能的定义和管理,以及指导流量如何有序经过这些网络功能单元就是SFC。为什么现在需要SFC,是因为以前firewall,NAT,IDS等网络功能单元是实体物理设备,它的部署位置是和网络拓扑强相关的,所有流量共享这些设备,而且流量经过这些设备的序列是固定死的,总结是不够灵活,而SFC可以自定义网络功能单元,自定义流量路径,很好给云计算网络提供了支撑。SFC首先由classifier识别出要经过这条chain的流量,然后再不断地经过这条chain上的servicefunction,从classifier到第一个sf和从上一下sf到下一个sf,报文都被封装SFC头,目前主推的就是RFC8300NetworkServiceHeader(NSH),封装头一般包含chainid和chain上的位置,就是这个报文走的是哪个chai

  • C#核心概念--装箱和拆箱(什么是装箱和拆箱)

    装箱(boxing)和拆箱(unboxing)是C#类型系统的核心概念.是不同于C与C++的新概念!,通过装箱和拆箱操作,能够在值类型和引用类型中架起一做桥梁.换言之,可以轻松的实现值类型与引用类型的互相转换,装箱和拆箱能够统一考察系统,任何类型的值最终都可以按照对象进行处理. C#语言中的所有类型都是由基类System.Object继承过来的,包括最常用的基础类型:int,byte,short,bool等等,就是说所有的事物都是对象。如果申明这些类型得时候都在堆(HEAP)中分配内存,会造成极低的效率!(个中原因以及关于堆和栈得区别会在另一篇里单独得说说!) .NET如何解决这个问题得了?正是通过将类型分成值型(value)和引用型(regerencetype),C#中定义的值类型包括原类型(Sbyte、Byte、Short、Ushort、Int、Uint、Long、Ulong、Char、Float、Double、Bool、Decimal)、枚举(enum)、结构(struct),引用类型包括:类、数组、接口、委托、字符串等。 值型就是在栈中分配内存,在申明的同时就初始化,以确保数据

  • JVM 问题排查和性能优化常用的 JDK 工具

    JDK提供了一系列用于监控、诊断Java进程的工具,它们在JDK安装目录的bin目录下,有jps、jcmd、jstack、jinfo、jmap等。其中jmc、jconsole、jvisualvm是GUI工具,其他大部分都是命令行工具。cd$JAVA_HOME/bin ls复制本篇只是个入门介绍,不涉及深入分析。每一个工具都有它专门的作用,掌握使用方法只是很简单的入门阶段,更重要的是根据工具得到的信息去分析系统存在的问题以及性能瓶颈,每一个工具的使用和分析都可以单独成文。jps如果你用过Linux,那肯定熟悉ps命令,用来查看进程列表的。jps就好比是ps命令的子集,它查询的是当前用户下已经启动的Java进程。这是进行线上问题排查的大门钥匙,有了它才能下手后面的动作。下面是jps的帮助文档usage:jps[-help] jps[-q][-mlvV][<hostid>] Definitions: <hostid>:<hostname>[:<port>]复制一般的用法是jps-l,前面一列显示pid,后面一列显示进程名称。 还可以用下列参数

  • 借助云开发轻松实现后台数据批量导出丨实战

    小程序导出数据到excel表,借助云开发后台实现excel数据的保存我们在开发小程序的过程中,可能会有这样的需求:如何将云数据库里的数据批量导出到excel表里?这个需求可以用强大的云开发轻松实现!这里需要用到云函数,云存储和云数据库。可以说通过这一个例子,把小程序云开发相关的知识都用到了。下面就来介绍如何实现实现思路1,创建云函数2,在云函数里读取云数据库里的数据3,安装node-xlsx类库(node类库)4,把云数据库里读取到的数据存到excel里5,把excel存到云存储里并返回对应的云文件地址6,通过云文件地址下载excel文件一、创建excel云函数关于如何创建云开发小程序,这里我就不再做具体讲解。不知道怎么创建云开发小程序的同学,可以去翻看腾讯云云开发公众号内菜单【技术交流-视频教程】中的教学视频。创建云函数时有两点需要注意的,给大家说下1、一定要把app.js里的环境id换成你自己的 2,你的云函数目录要选择你对应的云开发环境(通常这里默认选中的) 不过你这里的云开发环境要和你app.js里的保持一致 二、读取云数据库里的数据我们第一步创建好云函数以后,可以先在云函数里

  • 一次ES故障排查过程

    作者:莫那鲁道 原文:http://thinkinjava.cn/#blog复制某天晚上,某环境ES出现阻塞,运行缓慢。于是开始排查问题的过程。开始思路:现象是阻塞,通常是CPU彪高,导致业务线程分配不到CPU时间片,或者内存吃紧,频繁GC导致的STW。登录到目标服务器,由于ES的用户不是LZ,因此找运维要了root权限,登录到服务器。sudo-i切到root,使用ps-ef|grepElasticsearch找到该用户,然后su-es切到es用户(不切是无法处理es用户的Java进程的,例如打印jstack日志)。top查看服务器状态,发现pid4335进程的CPU占用达到180%,查看CPU核数:cat/proc/cpuinfo|grep“processor”|wc-l,核数为4,根据经验,通常是C2编译器,或者GC线程,最后是业务代码导致。因此需要定位该线程。使用top-Hp4335,得到线程号30785,使用printf"%x"得到16进制数字7841,方便在jstack日志查找线程。使用jstack-l4335>jstacklog.txt打印日志,然

  • jQuery点击按钮,生成input输入框

    需求,点击添加按钮,生成input输入框,如果上一个输入框为空,则弹出提示框提示,若不为空,则生成一行input框。<!DOCTYPEhtml> <html> <head> <metacharset="utf-8"> <title></title> <linkrel="stylesheet"href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css"> <scriptsrc="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script> <scriptsrc="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/js/bootstrap.min.js">&

  • Python 学习入门(20)—— 循环

    1.for循环for循环需要预先设定好循环的次数(n),然后执行隶属于for的语句n次。基本构造是for元素in序列: statement复制举例来说,我们编辑一个叫forDemo.py的文件forain[3,4.4,'life']: printa复制这个循环就是每次从表[3,4.4,'life']中取出一个元素(回忆:表是一种序列),然后将这个元素赋值给a,之后执行隶属于for的操作(print)。介绍一个新的python函数range(),来帮助你建立表。idx=range(5) printidx复制可以看到idx是[0,1,2,3,4]这个函数的功能是新建一个表。这个表的元素都是整数,从0开始,下一个元素比前一个大1,直到函数中所写的上限(不包括该上限本身)(关于range(),还有丰富用法,有兴趣可以查阅,python3中,range()用法有变化,见评论区)举例forainrange(10): printa**2复制 2.while循环while的用法是while条件: statement复制while会不停地循环执行隶属于它的语句,直

  • python基础类型(二):字典与元组

    一、字典python中的字典是由键值对组成,每一个键在字典中都是唯一的,值可以是任意类型的对象,但是键必须是不可遍的对象类型(如:字符串、数字、元组等)。一个字典由许多个键值对组成,我们可以通过键来访问字典中的对应键的值,如:d={ 'test1':1, 2:2, (1,2):3 } d['test1']#1 d[2]#2 d[(1,2)]#3复制也可以通过键来给字典中对应位置的键进行赋值,如:d['test1']#1 d['test1']=4 d['test1']#4复制如果所给的键不在字典中,就会向字典里添加所给的键并进行赋值,如:d['test2']=4 """ d={ 'test1':1, 2:2, (1,2):3, 'test2':4 } """复制1.字典常用操作in:我们通常使用in来判断某个键是否在字典当中,如: 'test1'in

  • 金融行业如何用大数据构建精准用户画像?

    1.什么是用户画像?2.用户画像的四阶段用户画像的焦点工作就是为用户打“标签”,而一个标签通常是人为规定的高度精炼的特征标识,如年龄、性别、地域、用户偏好等,最后将用户的所有标签综合来看,就可以勾勒出该用户的立体“画像”了。为了精准地描述用户特征,可以参考下面的思路,从用户微观画像的建立→用户画像的标签建模→用户画像的数据架构,我们由微观到宏观,逐层分析。首先我们从微观来看,如何给用户的微观画像进行分级呢?如下图所示总原则:基于一级分类上述分类逐级进行细分。第一分类:人口属性、资产特征、营销特性、兴趣爱好、购物爱好、需求特征4.用户画像工作坚持的原则市场上用户画像的方法很多,许多企业也提供用户画像服务,将用户画像提升到很有逼格一件事。金融企业是最早开始用户画像的行业,由于拥有丰富的数据,金融企业在进行用户画像时,对众多纬度的数据无从下手,总是认为用户画像数据纬度越多越好,画像数据越丰富越好,某些输入的数据还设定了权重甚至建立了模型,搞的用户画像是一个巨大而复杂的工程。但是费力很大力气进行了画像之后,却发现只剩下了用户画像,和业务相聚甚远,没有办法直接支持业务运营,投入精力巨大但是回报微

  • 【支撑20亿人的机器学习】Jeff Dean、贾扬清等ScaledML大会演讲

    精彩回顾2018新智元产业跃迁AI技术峰会圆满结束,点击链接回顾大会盛况:爱奇艺http://www.iqiyi.com/l_19rr3aqz3z.html腾讯新闻http://v.qq.com/live/p/topic/49737/preview.html新浪科技http://video.sina.com.cn/l/p/1722511.html云栖社区https://yq.aliyun.com/webinar/play/419斗鱼直播https://www.douyu.com/432849天池直播间http://t.cn/RnQPhuYIT大咖说http://www.itdks.com/eventlist/detail/1992新智元编译来源:ScaledML作者:文强【新智元导读】如何利用GPU,TPU,CPU等不同计算平台,如何从数据、模型等多个维度扩展机器学习?可扩展是机器学习接下来的攻关重点之一。谷歌大脑负责人JeffDean日前在ScaledML大会发表演讲《系统与机器学习》,介绍TPU最新进展以及谷歌在可扩展机器学习方面的工作。英伟达首席科学家BillDally、Face

  • 00SEC-D&D数据泄露报警日报【第8期】

    01概述2022.9.20共发现匿名网络资讯信息279,736条;最近7天共发现匿名网络资讯信息1,000,360条,增长21%;最近30天共发现匿名网络资讯信息3,090,597条。D&D评论:近期美国、印度、俄罗斯的数据泄露趋势上升。02国际热点本章仅随机选取五个境外事件或涉及到其他国家和著名海外机构的事件。以下为监测到的情报数据,D&D系统不做真实性判断与检测。2.1.42kAirtelPaybank去哈希涉及国家/组织:印度/AirtelPaybank售卖人:0x1ucif3r样例数据:完整数据量:42,000条详情:印度支付银行AirtelPayments Bank,泄露数据字段:账号、邮箱、密码。价格:免费2.2.5000万-拥有移动和设备ID的美国消费者信息涉及国家/组织:美国售卖人:BoredApe样例数据:少量样例数据量:50,000,000条详情:User_ID,User_Email,User_Name,User_Surname,User_City,User_State,User_Zip_Code,User_Mobile_Number,User_De

  • 20155235 《网络攻防》 实验六 信息搜集与漏洞扫描

    20155235《网络攻防》实验六信息搜集与漏洞扫描 实验内容 各种搜索技巧的应用 DNSIP注册信息的查询 基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点 漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞 实验一各种搜索技巧的应用 whois 使用whois命令查询信息 结果如图 nslookup 用dig-h获得帮助 其他网站的DNS服务器查询结果及缓存结果 用shodan搜索引擎查询,得: IP反域名查询,得: IP2Location进行查询,得: tracert路由探测 Windows情况: Linux情况: 奇妙的区别,emmn...... 百度的地址 netdiscover发现 在linux下执行netdiscover,对私有网段192.168..进行主机探测 nmap扫描 命令在图中 完美 实验二漏洞扫描 Openvas漏洞扫描 输入openvas-check-setup,检查安装状态,显示error,在20155232李书琪同学的博客中找到解决办法,并解决 输

  • 段选择子结构

  • 主引导扇区的理解

    什么是主引导扇区?masterbootrecord它是硬盘上的第一个扇区,由硬盘厂商就预留了。一个扇区的大小通常是512个字节。主引导扇区,不依赖于具体的操作系统,也就是说主引导扇区可以启动任何一种操作系统。它的作用是什么?里面存储了什么信息?里面存储的是硬盘的基本信息,包括硬盘分成几个区,每个区的大小,每个区从什么位置开始,从什么位置结束。里面的数据是怎么写入进去的,通过工具。任何操作系统平台上的工具都可以写入进去。疑问:一块新的硬盘,第一个扇区的内容是不是由厂商就写好数据进去了?包括的内容:1、主引导程序代码,占446字节、2、磁盘签名3、硬盘分区表DPT,占64字节。64个字节刚好可以描述4个分区。64+446=500个字节。疑问,既然里面64个字节,最多只能分4个逻辑分区。那么为什么不把容量扩大些呢?MBR功能     1.扫描分区表查找活动分区;  2.寻找活动分区的起始扇区 知识点:每个分区都会有一个启动扇区,英文简称DBR。一个扇区也叫做磁盘块,所以也称为启动块。而只有活动分区的引导扇区才会被mbr中的引导程序装入内存中去

  • 普通人如何实现阶级跃迁,锻炼身体提醒自己是个上进的人,文化资本可以转化为经济资本和权利资本

    普通人如何实现阶层跨越?   所谓的阶层,其实是一个社会学概念,社会学家相信,只要我们在社会上进行任何活动,按照特定的标准,就可以归入到特定的阶层之中。 而我们常常提及的阶层,依据的标准非常多样,职业、收入、受教育水平、文化资本等等,不同的标准,划分出来的阶层数量,也会各不相同。 按照现在主流的观点,社会学家把阶层划分为上层阶层、中产阶层和底层阶层,各个阶层拥有不同的经济资本、文化资本和权力资本。 经济资本,这个对于很多人来说,应该不会感到陌生。 上层阶层拥有大量的财富资源,比如说房产、公司期权、名画古董等等,这些财富资源可以是继承得来的(可以自己想想例子),也可以是自己白手起家的(可以自己想想例子)。 大量的财富资源可以保证上层阶层,即使自己不用到场,也能有源源不断的睡后收入,而且这些财富资源的收益率,可以说是相当可观,毕竟有100万和有1000万,年收益率肯定是有差距的。 而广大的中产阶层和底层阶层,手头上握有的经济资本,肯定不能和上层阶层相提并论,他们需要不断上班和加班,即自己需要亲自到场,才能获得相对应的收入。 权力资本,也就是一个人影响他人的能力。 上层阶层

  • Java-数组 给数组增加/删除元素

    Java-数组给数组增加/删除元素   注:数组一旦被初始化,就没有办法改变他的长度 1、末尾增加元素 int[]ordArray={1,2,3,4,5};int[]newArray=newint[ordArray.length+1];for(inti=0;i<=ordArray.length-1;i++){newArray[i]=ordArray[i];}newArray[newArray.length-1]=0;for(intx:newArray){System.out.println(x);}复制 2、指定位置添加元素 int[]ordArray={1,2,3,4,5};int[]newArray=newint[ordArray.length+1];for(inti=0;i<=newArray.length-1;i++){if(i<3){newArray[i]=ordArray[i];}elseif(i==3){newArray[i]=0;}elseif(i>3){newArray[i]=ordArray[i-1];}}for(intx:new

  • 【转】文件下载之断点续传(客户端与服务端的实现)

    【转】文件下载之断点续传(客户端与服务端的实现) 前面讲了文件的上传,今天来聊聊文件的下载。 老规矩,还是从最简单粗暴的开始。那么多简单算简单?多粗暴算粗暴?我告诉你可以不写一句代码,你信吗?直接把一个文件往IIS服务器上一扔,就支持下载。还TM么可以断点续传(IIS服务端默认支持)。 在贴代码之前先来了解下什么是断点续传(这里说的是下载断点续传)?怎么实现的断点续传? 断点续传就是下载了一半断网或者暂停了,然后可以接着下载。不用从头开始下载。 很神奇吗,其实简单得很,我们想想也是可以想到的。 首先客户端向服务端发送一个请求(下载文件)。然后服务端响应请求,信息包含文件总大小、文件流开始和结束位置、内容大小等。那具体是怎么实现的呢? HTTP/1.1有个头属性Range。比如你发送请求的时候带上Range:0-199,等于你是请求0到199之间的数据。然后服务器响应请求Content-Range:bytes0-199/250,表示你获取了0到199之间的数据,总大小是250。(也就是告诉你还有数据没有下载完)。 我们来画个图吧。 是不是很简单?这么神奇的东西也就是个“约定”而已,也就

相关推荐

推荐阅读