窝在家里写程序 发表于 2020-6-30 15:04:10

求大神解答!!!

mor=['登鹳雀楼',
   '王之涣',
    '白日依山尽',
    '黄河入海流',
    '欲穷千里目',
    '更上一层楼']
for mo in mor:
    print(end=' ')
    print('|%s|'% mo.center(10))



我该怎么让|对齐

yhhpf 发表于 2020-6-30 15:11:05

mor=['登鹳雀楼',
   '王之涣',
    '白日依山尽',
    '黄河入海流',
    '欲穷千里目',
    '更上一层楼']
for mo in mor:
    print(end=' ')
    print('|%s|'% mo.center(20-len(mo)*2))

Twilight6 发表于 2020-6-30 15:13:26


加个制表符 \t 即可:

mor = ['登鹳雀楼',
       '王之涣',
       '白日依山尽',
       '黄河入海流',
       '欲穷千里目',
       '更上一层楼']
for mo in mor:
    print(end=' ')
    print(('|%s\t|' % mo.center(10)))



Twilight6 发表于 2020-6-30 15:24:53



上面我发的代码我发现 IDLE和 PyCharm 效果不同

PyCharm 的效果:
完美对齐~~


IDLE:
歪歪曲曲...


所以后来在加上个制表符:
mor = ['登鹳雀楼',
       '王之涣',
       '白日依山尽',
       '黄河入海流',
       '欲穷千里目',
       '更上一层楼']
for mo in mor:
    print(end=' ')
    print(('|\t%s\t|' % mo.center(10)))


发现两边都会对齐了:
IDLE:


PyCharm:




yhhpf 发表于 2020-6-30 15:31:50

Twilight6 发表于 2020-6-30 15:13
加个制表符 \t 即可:

横向制表符 get~
阿里嘎多~

Twilight6 发表于 2020-6-30 15:34:06

yhhpf 发表于 2020-6-30 15:31
横向制表符 get~
阿里嘎多~

{:10_281:}

窝在家里写程序 发表于 2020-6-30 15:51:48

Twilight6 发表于 2020-6-30 15:24
上面我发的代码我发现 IDLE和 PyCharm 效果不同

PyCharm 的效果:


没用吖铁子

Twilight6 发表于 2020-6-30 15:52:57

窝在家里写程序 发表于 2020-6-30 15:51
没用吖铁子

我亲自测试可行呀? 你复制错了呗?要不发个截图吧~~~

窝在家里写程序 发表于 2020-6-30 15:54:56

yhhpf 发表于 2020-6-30 15:11


铁子你的也没用吖

yhhpf 发表于 2020-6-30 15:58:13

窝在家里写程序 发表于 2020-6-30 15:54
铁子你的也没用吖

老哥,当两个铁子的代码都不行时,
你应该怀疑下是不是自己表达错了,或者...其他的...{:10_256:}

窝在家里写程序 发表于 2020-6-30 16:02:38

Twilight6 发表于 2020-6-30 15:52
我亲自测试可行呀? 你复制错了呗?要不发个截图吧~~~

D:\

窝在家里写程序 发表于 2020-6-30 16:04:50

Twilight6 发表于 2020-6-30 15:52
我亲自测试可行呀? 你复制错了呗?要不发个截图吧~~~

怎么发图嘞

Twilight6 发表于 2020-6-30 16:09:47

窝在家里写程序 发表于 2020-6-30 16:04
怎么发图嘞


刚刚百度查的 chr(12288) 是中文空格,你看看这样行不行对齐

mor = ['登鹳雀楼',
       '王之涣',
       '白日依山尽',
       '黄河入海流',
       '欲穷千里目',
       '更上一层楼']
for mo in mor:
    print('|\t{:{}^10}\t|'.format(mo,chr(12288)))

yhhpf 发表于 2020-6-30 16:17:04

Twilight6 发表于 2020-6-30 16:09
刚刚百度查的 chr(12288) 是中文空格,你看看这样行不行对齐

???我没搞明白,我俩代码都没问题呀,确实有错了?

Twilight6 发表于 2020-6-30 16:19:29

yhhpf 发表于 2020-6-30 16:17
???我没搞明白,我俩代码都没问题呀,确实有错了?

嗯和编译器也有关系的不是错了

yhhpf 发表于 2020-6-30 16:28:02

Twilight6 发表于 2020-6-30 16:19
嗯和编译器也有关系的不是错了

额,pycharm试了下,确实不对。
思考了下,我代码是肯定错的,原来想的是(最大长度-文本长度)/2作为两边的空格个数,保障文本对齐,忘记考虑文本奇数时出现浮点,两边肯定会对不上。
你代码两边\t之后,IDLE和pycharm上都没问题,所以楼主用的啥编译器0 0?

yhhpf 发表于 2020-6-30 17:01:13

本帖最后由 yhhpf 于 2020-6-30 17:07 编辑

Twilight6 发表于 2020-6-30 16:19
嗯和编译器也有关系的不是错了

额额,大概了解了,原因在于填充字符的宽度在显示器上显示时和文本的宽度有差别,所以目视效果上达不到对齐,但理论上总的长度一致。

yhhpf 发表于 2020-6-30 17:29:25

Twilight6 发表于 2020-6-30 16:09
刚刚百度查的 chr(12288) 是中文空格,你看看这样行不行对齐

大佬,我感觉这个也不行,
{:{}^10}吧10 改成2,{:{}^2},就会发现其实还是没对齐,显示效果,感觉这个只能根据编译器上,一个文本文字占几个空格宽度来针对性的写了?

Twilight6 发表于 2020-6-30 17:35:08

yhhpf 发表于 2020-6-30 17:29
大佬,我感觉这个也不行,
{:{}^10}吧10 改成2,{:{}^2},就会发现其实还是没对齐,显示效果,感觉这个 ...

不一定你行的人家不行,那么你不行的人家有可能就行

hrp 发表于 2020-6-30 17:42:42

各位大佬,这个对不对得齐很可能和字体有关
页: [1] 2
查看完整版本: 求大神解答!!!