2014/8/18

【Python】print不換行作法

網路上網路上Google:python print no new line,可以得到很多的討論串,多數會將Case分成python3與先前版本兩種來解決這問題,先看看這兩種作法(最後探討各版本間相容的作法):
  1. python3的作法
    1
    2
    print('Hello World', end='')
    print(', Same Line')
    
  2. 早期版本的作法
    1
    2
    print('Hello World'),
    print(', Same Line')
    
上面二分法的解決方法在能確保選定python版本後就不會作修改的情況下,一切都能運作正常不會發生"意外"。但實際上,在程式開發中很多臭蟲都是在這一念之間埋下惡果的!

在知道有版本相容性問題時,最好方法還是得找個兩全其美的方案會好些,參考下面思緒決定第三種解決方案:
  • 查閱手冊發現2.1版以後增加了Lib/__future__.py模組:在遇到換行的問題上可透過引入此模組的print_function讓2.1到2.X版都能使用python3的解法。
  • 但如上述所說必須2.1以後版本才支援此模組,稍微查了一下python2.1大約是2001年finally release的,掐指一算離現在大概也13年了,再查看手邊系統環境python版本是2.7。
  • 考量上述兩點,遇到2.1以前的版本機率應該遠小於之後更新python版本到3.X甚至更之後版本,因此採用第三種解決方法應該會是比較好的選擇。
1
2
3
4
from __future__ import print_function

print('Hello World', end='')
print(', Same Line')

沒有留言:

張貼留言