首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Python的print输出中文对齐问题

问题描述: 在使用Python的内建函数print作英文输出时,应用格式化输出可以对齐得很好: s1 = 'I am a long sentence.' s2 = 'I\'m short.'...print '%-30s%-20s' %(s1,s2) #'%-30s' 含义是 左对齐,且占用30个字符位 print '%-30s%-20s' %(s2,s1) 输出: ?...但当字符串包含中文时,却发现它对齐得不是很好: # -*- coding:utf-8 -*- #author: Song Bo, Eagle, ZJU #email: sbo@zju.edu.cn s1...无法对齐。 原因是这样:在print中,函数为了实现字符串对齐,会在未达到指定长度的字符串末尾添上空格补齐。 但是,问题在这里,它会填入ASCII码为20的space,也就是半角空格。...解决方案: 重写一个格式对齐函数,函数中判断字符串是否是中文字符串,有的话则添加全角空格补齐,否则添加半角空格补齐。

4.4K20

Python: struct 模块之字节对齐问题

在二进制写文件时,可以用 模块将数据捆绑成结构体转化成字节流,为了方便与 交互,避免 在读取二进制字节流时因为 的字节对齐问题而造成不必要的麻烦, 的 模块默认按照...的字节对齐方式进行对齐。...的 模块的字节对齐坑了我整整一上午首先我用 写好了二进制文件,并且测试用 去读取该二进制文件,测试良好,没有什么问题,但是当我写 的接口时,却发现数据一直有问题。...经过一上午的排查,总算发现,字节的读取地址出现了问题,然而 的却没有这个问题,所以一下子就断定是 模块的字节对齐出了幺蛾子这里我用 写进了一堆 , struct header {...不知道该怎么喷 ,最后图个省事儿,弄成了 ,妈妈再也不用担心字节对齐问题了。 不过,有那么一种可能是,不同的 编译器对这两种写法的字节对齐方式存在差异?

1.8K20

代码规范:换行对齐问题

先提一个问题:换行的目的是什么?我想答案应当是:让代码更清晰,可读性更好,也让书写更不容易犯错误。...文档时列出一、二、三、四 3.有注释的作用,可以将逗号看成注释符,可以更清楚的标明这是一行的开始 4.可增加代码的观赏性,统一以逗号打头,显得更有美感 有些时候,简单换行仍可能导致单行过长,这个时候可改变对齐点...function(       int a     , char b,     , short c,     , long d,     , struct* e) { } 这样基本可以解决大多数参数列表过长问题...,对于表达式过长的问题,采取同样的解决方式。...我们需要规范,但不应当是死板的规范,最好可让它展现出一点活力,比如对于二目操作符的空格问题,就应当有柔性,而不是不分场合统一前后空一格,如: int x = (a + b) / M; 虽然很规范,但从美观上来说

95920

C语言中字节对齐问题分析1

作者:李云 摘要 字节对齐(alignment)是CPU在性能方面所面临的一个非常重要的问题。...当处理器无法处理对齐问题时,其将引发一个异常(exception),当然从程序的角度来说就是出错(crash)。...对于c程序员,大部分情况下我们并不考虑字节对齐问题,这并不是说我们并不需要考虑,而是因为碰到这种问题的情况很少。一方面要在特定的处理器上,而另一方面和我们写的程序也有关系。...只有两个条件同时满足时问题才会出现。因此,结果给我们的感觉是”字节对齐与我无关”。 本文通过一小段代码通过在不同处理器上的运行结果引出对字节对齐问题的关注,同时进行原因分析。 1....这其实是一个cpu对齐所引发的问题,下面我们通过对字节对齐问题的分析来探究其背后的原理。后面的分析我们全部针对运行在32位SPARC处理器上的Solaris操作系统进行的。

1.3K10

【烧脑技术贴】无法回避的字节对齐问题,从八个方向深入探讨(变量对齐,栈对齐,DMA对齐,结构体成对齐,Cache, RTOS双堆栈等)

七、硬件浮点对齐问题 如果使用的是带FPU硬件浮点单元的M内核芯片就要注意对齐访问了,访问单精度浮点数访问一定要4字节对齐,双精度要8字节对齐。...RTOS任务栈的关键依然是8字节对齐问题,如果仅仅是满足4字节对齐,就会出现我们前面printf和sprintf浮点数或者64bit数据的错误问题,早年各种RTOS移植案例还不是那么发达的时候(现在问题依旧...根本原因是底层移植文件的堆栈8字对齐问题,很多人都是采用的指令__align(8)来设置堆栈对齐问题,其实修改底层port文件才是解决问题的根本。...九、DMA对齐问题: DMA对齐指的是源数据地址和目的数据对齐问题。这个问题最容易出错的地方就是网上倒腾SD卡移植FatFS的SDIO DMA方式。...比如使用SDIO DMA从SD卡读取数据,我们就可以设置源地址依然是4字节对齐(外设访问要4字节对齐),而目的地址设置为字节对齐,就可以方便的解决4字节对齐问题

1.2K30
领券