鱼C论坛

 找回密码
 立即注册
查看: 128|回复: 9

[已解决]为什么加了两个退格程序输出差距这么大

[复制链接]
发表于 2022-8-5 17:38:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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()

最佳答案
2022-8-6 11:28:35
本帖最后由 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个空格
所以结果就是图一这样子
1.jpg
2.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2022-8-5 17:40:07 From FishC Mobile | 显示全部楼层
\b就是删除前面一个字符,要是没有变化还得了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2022-8-6 10:43:52 | 显示全部楼层
hrpzcf 发表于 2022-8-5 17:40
\b就是删除前面一个字符,要是没有变化还得了

我疑惑的不是变了,是我觉得她变得没有规律,就比如4*2=8与4*3=12之间的距离和4*3=12与4*4=16之间的距离为什么不同,这是我疑惑的?能解答一下嘛?比较困惑
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2022-8-6 11:10:10 | 显示全部楼层
左疯子 发表于 2022-8-6 10:43
我疑惑的不是变了,是我觉得她变得没有规律,就比如4*2=8与4*3=12之间的距离和4*3=12与4*4=16之间的距离 ...

1,因为你退格会影响到 tab
2,其次,不建议你用退格来取消 print 中逗号带来的空格,可以用 sep 参数
比如
  1. print(a, b, sep="") # 表示输出 a 和 b 但是不被空格隔开
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2022-8-6 11:28:35 | 显示全部楼层    本楼为最佳答案   
本帖最后由 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个空格
所以结果就是图一这样子
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2022-8-6 17:27:28 | 显示全部楼层
hrpzcf 发表于 2022-8-6 11:28
因为你用到了\t,\t是横向制表符,是用来对齐字符的,默认是每8个空格宽度一茬
“4* 2= 8”是7个字符 ...

明白了,谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2022-8-6 17:27:58 | 显示全部楼层
liuzhengyuan 发表于 2022-8-6 11:10
1,因为你退格会影响到 tab
2,其次,不建议你用退格来取消 print 中逗号带来的空格,可以用 sep 参数
...

懂啦,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2022-8-6 17:31:34 | 显示全部楼层
hrpzcf 发表于 2022-8-6 11:28
因为你用到了\t,\t是横向制表符,是用来对齐字符的,默认是每8个空格宽度一茬
“4* 2= 8”是7个字符 ...

还有个疑惑,\t是凑够八个字符,那为啥12后面是四个字符呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2022-8-6 17:54:21 | 显示全部楼层
左疯子 发表于 2022-8-6 17:31
还有个疑惑,\t是凑够八个字符,那为啥12后面是四个字符呢?

可能是跟终端有关吧,我用Windows Terminal是8个空格。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2022-8-6 22:59:21 | 显示全部楼层

如果问题解决了,请选一个你最满意的答案作为 “最佳答案”
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1

GMT+8, 2022-8-17 19:00

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表