python編寫程式碼的時候用中文註釋程式會報錯,請問大佬該怎麼解決?

python編寫程式碼的時候用中文註釋程式會報錯,請問大佬該怎麼解決?ProblemBoy2020-05-04 00:48:54

從問題應該可以確定題主使用的是 Python 2。x 版本,而在 Python 2 版本中,最坑爹的問題莫過於編碼問題,也是困擾了無數初學者的問題。

原因分析

python編寫程式碼的時候用中文註釋程式會報錯,請問大佬該怎麼解決?

首先要了解的就是 Python 2 版本是使用 ASCII 作為預設編碼的,上圖是一個簡易的 ASCII 對照表,可以看到 ASCII 只包含了一些符號、數字、字母,是不包含中文字元的。所以在 Python 2 版本預設環境下執行包含中文字元的 Python 程式碼的時候,就會得到一個錯誤:

SyntaxError: Non-ASCII character xxx in file, but no encoding declared。

這個錯誤翻譯過來就是“程式碼沒有指定編碼(即預設的 ASCII 碼),但是存在非 ASCII 碼的字元”,猜測題主應該也是遇到的是這個錯誤吧。

解決方案

要解決這個問題其實很簡單,只需要在程式碼新增一個編碼宣告就可以,可以宣告的編碼有很多種,這裡不多做介紹,通常我們會使用 UTF-8 編碼。

而宣告編碼的方式有幾點要注意的:

1。 宣告要新增在程式碼開頭第一行或者第二行,並且之前不可以有其他程式碼。(如果第一行是程式碼,第二行是宣告也是不可以的;同樣強兩行沒有程式碼,第三行是宣告也是不可以的)

2。 宣告的格式為滿足一個正則表示式:

^[ \t\f]*#。*?coding[:=][ \t]*([-_。a-zA-Z0-9]+)

這個表示式看不懂?沒關係,通常我們都會使用相同格式如下:

# coding=utf-8

或者

# -*- coding: utf-8 -*-

雖然使用上面的方案可以解決這個問題,但是還有更好的方案就是去學習使用 Python 3 版本,這些困擾你的問題基本上就全都沒有了。而且 Python 3 已經是現在的主流版本了,只是由於 Python 2 這個坑挖的太大了,所以才導致目前兩種版本並存。相信未來某一天,Python 2 必然會退出歷史舞臺。

python編寫程式碼的時候用中文註釋程式會報錯,請問大佬該怎麼解決?Python學習專欄2020-05-03 16:46:04

這個是編碼的問題,python有非ASCLL編碼的字元時,需要新增編碼宣告。

在第一行,或者第二行新增

-*- coding: utf-80 -*-

或者

#coding=utf-8

python編寫程式碼的時候用中文註釋程式會報錯,請問大佬該怎麼解決?聰慧河流2020-05-03 19:08:07

這種問題沒遇到過,習慣第一行寫

# -*- conding:utf-8 -*-

python編寫程式碼的時候用中文註釋程式會報錯,請問大佬該怎麼解決?反迷你的叮叮醬2020-05-03 20:55:52

用的python3,沒遇到過,直接用中文註釋可以的

文字文件中文,兜名字的引號後面逗號加上encoding=‘utf8’就o98k了

windows系統用encoding百呼百應,mac好像有影響

python編寫程式碼的時候用中文註釋程式會報錯,請問大佬該怎麼解決?歡暢農夫2020-05-03 20:42:19

用Python3版本,Python2老掉牙了

python編寫程式碼的時候用中文註釋程式會報錯,請問大佬該怎麼解決?搬磚農民工2020-05-03 17:24:32

#coding:utf-8

python編寫程式碼的時候用中文註釋程式會報錯,請問大佬該怎麼解決?君衣2020-05-04 10:02:10

使用的Python2。*版本會出現不支援中文問題,建議安裝Python3。*使用。如果有特定的版本要求,建議使用pyenv建立對應版本的虛擬環境,啟用虛擬環境後再進行相關操作

python編寫程式碼的時候用中文註釋程式會報錯,請問大佬該怎麼解決?Nick55832020-05-03 21:23:29

英文註釋,或者拼音

python編寫程式碼的時候用中文註釋程式會報錯,請問大佬該怎麼解決?PQian石頭2020-05-03 20:06:06

用英文註釋 完美解決[捂臉]