iT邦幫忙

0

tab 鍵在某些程式會自動排版

  • 分享至 

  • xImage

各位前輩好,我在解下列題目的時候

for i in range (1, 5):
    for j in range (1, 5):
        if j==4:
            print("\t", i*j)
        else:
            print("\t", i*j, end='')

得到的結果是這樣:

	 1	 2	 3	 4
	 2	 4	 6	 8
	 3	 6	 9	 12
	 4	 8	 12	 16

意外發現 python 竟然會自動對齊,在雙位數的時候,tab 會自動變小,讓我很意外。
我另外試了 vscode 也得到一樣的結果,還有 macOS 內建的 Notes 也是。
但是 hackmd 就不會對齊,他的 tab 都是 4 格

     1     2     3     4
     5     6     7     8
     9     10     11     12

請問一下為何會有這種現象呢?我不太知道這該如何查資料,感謝各位前輩了!

jiatool iT邦研究生 2 級 ‧ 2022-05-05 22:10:45 檢舉
正常 tab 不就是這個功能嗎?
https://zh.wikipedia.org/wiki/%E8%A3%BD%E8%A1%A8%E9%8D%B5
HackMD 不會對齊,應該是他設定把 tab 換成 4 格空白吧
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
海綿寶寶
iT邦大神 1 級 ‧ 2022-05-06 08:25:40

對電腦而言
tab 只是另一個可以用鍵盤輸入的字元(ASCII code 9)
跟空白鍵(ASCII code 32)差不多

對程式而言,只有兩種角色
1.產生 tab 字元的程式,例如:python
2.顯示(處理) tab 字元的程式,例如:command line console, Microsoft word, vs code..

你看到的「自動變小」和「自動排版」
都是第2種的設計
跟第1種無關

在寫程式的時侯
有一個蠻有趣的歷史爭議,就是
「程式的縮排該用 tab 鍵還是 2/3/4 個 spaces 鍵」
無聊時可以看看
/images/emoticon/emoticon06.gif

obarisk iT邦研究生 1 級 ‧ 2022-05-06 10:23:15 檢舉

只有python有這個問題

我要發表回答

立即登入回答