今天在学learn python the hard way ex26修改的时候,有一个关于\t的问题,下面分别为代码以及输出结果:

 1 poem = """
2 \tThe lovely world
3 with logic so firmly planted
4 cannot discern \n the needs of love
5 nor comprehend \tpassion from intuition
6 and requires an explantion
7 \n\t\twhere there is none.
8 """
9
10
11 print "--------------"
12 print poem
13 print "--------------"
--------------

        The lovely world
with logic so firmly planted
cannot discern
the needs of love
nor comprehend passion from intuition
and requires an explantion where there is none. --------------

  可以看到,第二行的 \t 以及第七行的两个\t 都分别'缩进'了八个字符,而第七行的 \t 只'缩进'了一个字符,那么 \t 到底是多少个字符呢(其实这个说法不对)?

  为了搞明白这个问题,测试的代码如下:

1 print """
2 12345678901234567890123456789012345678901
3 \t9\t789\t5\t\t1
4 1234567\t9
5 12345678\t7
6 """

第二行的数字是为了方便计算字符数的参考,运行结果如下:

12345678901234567890123456789012345678901
9 789 5 1
1234567 9
12345678 7

  可以看到line3 的前三个 \t 分别为八个、七个、五个字符,而 line4 line5 的为一个和八个字符

  其实到这里(虽然我还测试了一下其他的代码,但是我直接改成上面的代码了没保存,懒的再打了)可以大致猜测一下, \t 应该是八个字符为一个循环,每个 \t 即代表当前八个字符的单元已经ok,然后进入下一串八个字符的单元

所以line3 后面两个\t 应该分别缩进了七个和八个字符,这也可以解释之前代码中 \t 为什么只'缩进'了一个字符。

  总结:

    \t 其实代表当前八个字符的单元结束,进入到下一个八个字符的单元中。

关于 \t 水平制表符 Horizontal Tab (TAB)的更多相关文章

  1. 对C标准中空白字符(空格、回车符(\r)、换行符(\n)、水平制表符(\t)、垂直制表符(\v)、换页符(\f))的理解

    版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[+]   C标准库里<ctype.h>中声明了一个函数: int isspace(int c); 该函数判断字符c是否 ...

  2. (七)对话框,单选框(radiobox),复选框(checkbox),列表框(ListBox),组合框(CComboBox),水平滚动条(Horizontal scroll bar),微调(旋转)spincontrol,列表视图控件CListCtrl,静态控件static

    1,模态对话框和非模态对话框 // 模态对话框 void CMainFrame::OnDialogExec() { // TODO: 在此添加命令处理程序代码 // 创建对话框对象 CDialog d ...

  3. (转载)SQL去除回车符,换行符,空格和水平制表符

    http://www.cnblogs.com/insus/p/4815336.html MS SQL去除回车符,换行符,空格和水平制表符,参考下面语句,一般情况是SQL接受富文本或是textarea的 ...

  4. SQL去除回车符,换行符,空格和水平制表符

    MS SQL去除回车符,换行符,空格和水平制表符,参考下面语句,一般情况是SQL接受富文本或是textarea的内容.在数据库接收到这些数据之后,还是对其做一些处理. ),),),''),' ','' ...

  5. java去除字符串的空格,换行符,水平制表符,回车

    final private String stringTrimAll(final String input) { if (null == input) return ""; // ...

  6. MySQL去除表里数据回车符,换行符,空格和水平制表符

    MySQL去除表里数据回车符,换行符,空格和水平制表符 最近导数据的时候发现表里有好多回车符,换行符,水平制表符,MySQL的trim函数没办法去掉回车和换行,只能去掉多余的空格,可以用MySQL的r ...

  7. tab+tab

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. printf()函数中\t,水平制表符,空格的个数

    在控制台输出数据的时候,也就是用printf()的时候,我们经常用\t来控制对齐,以使输出的结果更加整齐美观. 然而有时候我们发现及时使用了\t 也会出现数据对不齐的情况,这就跟\t究竟对应几个空格有 ...

  9. 【转】 awk 学习笔记

    本文参考的是 ubuntu 下 gawk version 3.1.6 以及 <sed&awk> 一 . awk 简介 awk 是一种解释型(tawk除外)文本处理语言 二 . aw ...

随机推荐

  1. 在js里双引号里又加单引号的解决方案常用WdatePicker

    EndTime: '<input name="EndTime" type="text" class="editable center decim ...

  2. 自定义AppServer

    TelnetSever.cs public class TelnetServer : AppServer<TelnetSession> { protected override bool ...

  3. Windows客户端的JProfiler远程监控Linux上的Tomcat

    1.测试环境 服务器:RedHat Linux 3.4.3-9.EL4(内核版本 2.6.9-5.EL),Tomcat5.5.20,Sun JDK 1.5.0_09,JProfiler 4.3.2 f ...

  4. jquery serialize对json的包装用法

    jquery对象.serialize()  可以多用于表单对数据封装提交 能够收表参数,形成一个json格式字符串, 前提是:必须为每一个表单项取一个name属性 对元素 设置 name属性, 然后 ...

  5. Maven 向私服nexus上传jar

    1. 单个jar上上传 方法一:利用界面(省略) 方法二:利用命令行: 1). 安装到本地库:mvn install:install-file -DgroupId=org.apache.hadoop ...

  6. 关于远程访问Oracle数据库的设置(共享数据库)

    写在前面: 需求描述:     我笔记本上安装了oracle数据库, 现在同事也想连接这个数据库. 也就是设置为别人能远程访问我本地的数据库. 思路:     通过在我笔记本WiFi共享,别人连接该W ...

  7. js中的let和var

    在ES6中,应该尽量使用const和let来声明变量,而尽量避免使用var. var的缺点是它的作用域比较混乱,使用let能够保证清晰的作用域. 下面看一个小例子. var x = 3; if(x== ...

  8. [转]一千行MySQL学习笔记

    Shocker /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限验证登录MySQL ...

  9. automake安装出错

    automake命令出错 configure.ac:64: error: possibly undefined macro: AM_ICONV    If this token and others ...

  10. Oralce进程信息查看,Oracle的锁表与解锁

    参考: oracle查看锁表进程,杀掉锁表进程 Oracle的锁表与解锁 查看锁表进程SQL语句: select * from v$session t1, v$locked_object t2 whe ...