python注釋和2版本的中文亂碼


python里面的注釋

一、普通注釋

  單行注釋: #

  多行注釋:'''內容'''              """內容"""     

  ————兩種寫法,一種是以三個單引號括起來的內容,一種是以三個雙引號括起的內容

 

二、特殊注釋:

      ——#!/usr/bin/env python 與 #!/usr/bin/python

      這兩種注釋並不僅僅是寫給讀者看的注釋,它也寫給Linux操作系統看的,這些注釋決定了系統將如何運行這些文件。

      linux自帶python解釋器。在編寫.py文件時,只要寫上了#!/usr/bin/python這行注釋,用戶就可以直接在命令行用文件名來執行py文件,

      如:   testmode.py  

      它的意義就類似於在window命令行中,你必須得寫 python  testmode.py  或 javac testmode.java  或 java testmode.class 來運行文件,你要通過文件名

      前面的  關鍵字才能去啟動對應的解釋器。而有了這行注釋,Linux系統就知道了你要用什么來執行這個文件,你就可以直接用文件名去跑它了。

      

三、兩種特殊注釋的區別

#!/usr/bin/python 

  注釋的問題在於,Linux只系統默認的py解釋器(也就是自帶的那個)來運行文件。這樣用戶就無法使用自己的python版本了,不同的py版本之間語法有些差異,尤其是變動比較大的py2和py3,這些差異會使得整個程序無法正常運行。而#!/usr/bin/env python 的出現可則讓用戶可以自行選擇python版本,用戶可以在環境變量中配置自己的py解釋器(ps:用戶安裝的版本默認定位在linux的local文件夾中)。

#!/usr/bin/env python (推薦寫法)

  這行注釋,會使linux在解析文件時,知道要去使用環境變量中的py解釋器而非系統自帶的那個。所以如果你要使用該注釋,推薦使用#!/usr/bin/env python 的注釋,而非 #!/usr/bin/python。

 

如果是在windows環境中執行文件的話,這行注釋就無所謂了,因為在cmd中,需要先定位到你py文件所在的文件夾后,再使用python testmode.py 這樣的語句來執行文件。window系統也不會去看這行注釋.

 

三、Python2中文亂碼的解決方案,首行加上該注釋,3種寫法

  # encoding=utf-8

  # coding=utf-8

     # -*- coding:utf-8 -*-  (官方推薦寫法)

   python2需要在首行寫-*- coding:utf-8 -*-才能支持中文,python3開始默認支持中文了,就可以省去這行注釋。

 四、額外補充

關於編碼體系:
ASCII: 是最早的計算機編碼方式,它不支持中文韓文日文等等
GB2312:由中國國家標准總局1980年發布,它是最早支持中文的編碼方式,共收入漢字6763個和非漢字圖形字符682個.(它普遍用於早年的手機,MP4,移動端等,所以那時候很多電腦上可以看的文字到了手機上會變成亂碼)
GBK: 使用了雙字節編碼方案,其編碼范圍從8140至FEFE(剔除xx7F),共23940個碼位,收錄了21003個漢字,完全兼容GB2312-80標准,支持國際標准ISO/IEC10646-1和國家標准GB13000-1中的全部中日韓漢字,並包含了BIG5編碼中的所有漢字。GBK編碼方案於1995年10月制定, 1995年12月正式發布GBK.
UTF-8:UTF-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字符編碼,又稱萬國碼。由Ken Thompson於1992年創建。UTF-8用1到6個字節編碼Unicode字符。用在網頁上可以統一頁面顯示中文簡體繁體及其它語言(如英文,日文,韓文).utf-8是動態編碼方式,英文占一個字節,中文占3-4個字節

3.所以如果是在windows的Python3下運行你的程序,你完全可以不去寫前兩行注釋的,但是出於好習慣,也為了方便跨平台以及兼容,寫一寫還是好的。

4.如何在pyCharm中設置文件默認的開頭的注釋格式。如下:

  1.view中勾選Toolbar 工具條,點擊設置,也可使用ctrl+alt+S進入

  

  2.選擇editor下的file and code templates, 在右側file中選擇python script ,右側輸入注釋

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM