为何Python中两种print输出方式的结果存在差异?
为什么
print(a, b, c, sep='\t')与print(a, '\t', b, '\t', c)输出结果不同? 核心原因是Python的print()函数默认分隔符的影响:
第一种写法:
print(gid, size, num_A, num_C, num_G, num_T, pc_GC, not_ACTG, sep="\t")
这里显式指定了sep="\t",意味着所有变量参数之间只会插入一个制表符,没有额外空白字符,所以输出是整齐的制表符分隔格式,和你看到的第一组结果一致。第二种写法:
print(gid, "\t", size, "\t", num_A, "\t", num_C, "\t", num_G, "\t", num_T, "\t", pc_GC, "\t", not_ACTG)
这里没有指定sep参数,Python会使用**默认的空格(sep=' ')**作为分隔符。也就是说,你传入的每一个参数(包括手动添加的'\t')之间都会被插入一个空格。最终输出的结构是:变量 + 空格 + 制表符 + 空格 + 变量 + ...,这种空格加制表符的混合空白会导致视觉上的不规则对齐,也就是你看到的第二组混乱的结果。
用极简例子验证:
a = "chrI" b = 230218 # 写法1输出:chrI 230218 print(a, b, sep='\t') # 写法2输出:chrI 230218(注意chrI和制表符间有空格,制表符和数字间也有空格) print(a, '\t', b)
内容的提问来源于stack exchange,提问作者Jack
相关产品推荐
相关产品推荐

