为什么加了两个退格程序输出差距这么大
for i in range(1,10):for j in range(1,i+1):
print(i,'\b*',j,'\b=',i*j,end='\t')
print()
for i in range(1,10):
for j in range(1,i+1):
print(i,'*',j,'=',i*j,end='\t')
print()
\b就是删除前面一个字符,要是没有变化还得了 hrpzcf 发表于 2022-8-5 17:40
\b就是删除前面一个字符,要是没有变化还得了
我疑惑的不是变了,是我觉得她变得没有规律,就比如4*2=8与4*3=12之间的距离和4*3=12与4*4=16之间的距离为什么不同,这是我疑惑的?能解答一下嘛?比较困惑 左疯子 发表于 2022-8-6 10:43
我疑惑的不是变了,是我觉得她变得没有规律,就比如4*2=8与4*3=12之间的距离和4*3=12与4*4=16之间的距离 ...
1,因为你退格会影响到 tab
2,其次,不建议你用退格来取消 print 中逗号带来的空格,可以用 sep 参数
比如
print(a, b, sep="") # 表示输出 a 和 b 但是不被空格隔开 本帖最后由 hrpzcf 于 2022-8-6 11:32 编辑
左疯子 发表于 2022-8-6 10:43
我疑惑的不是变了,是我觉得她变得没有规律,就比如4*2=8与4*3=12之间的距离和4*3=12与4*4=16之间的距离 ...
因为你用到了\t,\t是横向制表符,是用来对齐字符的,默认是每8个空格宽度一茬
“4* 2= 8”是7个字符,所以8后面的\t表现为一个空格,刚好凑够8个字符宽度
“4* 3= 12”是8个字符,距离上一个\t已经满8个字符了,所以2后面的\t只好新起另一茬8个空格
所以结果就是图一这样子 hrpzcf 发表于 2022-8-6 11:28
因为你用到了\t,\t是横向制表符,是用来对齐字符的,默认是每8个空格宽度一茬
“4* 2= 8”是7个字符 ...
明白了,谢谢! liuzhengyuan 发表于 2022-8-6 11:10
1,因为你退格会影响到 tab
2,其次,不建议你用退格来取消 print 中逗号带来的空格,可以用 sep 参数
...
懂啦,谢谢 hrpzcf 发表于 2022-8-6 11:28
因为你用到了\t,\t是横向制表符,是用来对齐字符的,默认是每8个空格宽度一茬
“4* 2= 8”是7个字符 ...
还有个疑惑,\t是凑够八个字符,那为啥12后面是四个字符呢? 左疯子 发表于 2022-8-6 17:31
还有个疑惑,\t是凑够八个字符,那为啥12后面是四个字符呢?
可能是跟终端有关吧,我用Windows Terminal是8个空格。 左疯子 发表于 2022-8-6 17:27
懂啦,谢谢
如果问题解决了,请选一个你最满意的答案作为 “最佳答案”
页:
[1]