本文目錄一覽:
- 1、python運行後顯示Traceback (most recent call last):什麼意思?
- 2、在python中出現這種情況為什麼
- 3、Python 運行報錯NameError出現原因,怎麼解決
python運行後顯示Traceback (most recent call last):什麼意思?
意思是:回溯(最近的一次呼叫)
這裡表示您的Python程序出現了異常,括弧中通俗的解釋就是代碼中引發異常的位置。
Python中一般使用try-except捕獲異常。這樣,如果引發異常,程序可對異常進行處理。避免了Traceback(most recent call last)等這樣一些不友好的語句出現。
比如下面一個除零操作:
import traceback
try:
num = 1/0
except:
traceback.print_exc()
Traceback (most recent call last):
File “C:/Users/Administrator/AppData/Roaming/JetBrains/PyCharmCE2021.2/scratches/scratch.py”, line 5, in module
num = 1/0
ZeroDivisionError: division by zero
黑體標註的是異常具體位置。
如果對異常進行處理,就不會顯示這些回溯信息(Trackback這些內容)
try:
num = 1/0
except:
print(‘異常了’)
這裡程序只列印『異常了』這三個字,但在具體編寫程序時,不建議這樣使用。使用中建議指明具體的異常類型。如下:
try:
num = 1 / 0
except ZeroDivisionError as e:
print(str(e))
列印輸出「division by zero」,比Traceback友好多了!
希望回答對您有幫助!
在python中出現這種情況為什麼
python為什麼會出現這種錯誤?
這是 Python 的浮點數精度問題,因為 Python 在存儲浮點數的方法是存儲二進位的科學計數法。
8 位元組 64 位存儲空間分配了 52 位來存儲浮點數的有效數字,11 位存儲指數,1 位存儲正負號。
簡單來說,因為小數點後面理論上可以有無限位數,所以不可能在有限位元組中精確存儲,所以用的是類似科學計數法的非精確存儲。我們用分數來打比方,0.333334 可以用 1/3 來表示,但是 1/3 不等於 0.333334。所以在 Python 中就出現了這個問題,不光是 Python,其他語言也有類似的問題。
如何解決這種問題
接下來我們看看如何解決這個問題。
對於精確度要求不高的場景,可以計算後使用 round 函數近似。
對於確定小數位數的場景,例如金額 1.01,固定兩位小數,則可以乘以 100 以後用整型保存。
對於精確度要求高的場景,Python 有 decimal 模塊處理。
Python 運行報錯NameError出現原因,怎麼解決
python程序,報錯NameError: name XX is not defined 是沒有聲明造成的,需要在文件的前兩行進行聲明編碼,聲明方法為:
1、寫一個python文件,文件中有中文字元,且未聲明編碼。
2、當程序文件中,存在中文字元時候,文件未聲明編碼格式就會出現報錯信息: File “encode.py”, line 1SyntaxError:
Non-ASCII character ‘\xe7’ in file encode.py on line 1, but no encoding
declared; see //..python…/dev/peps/pep-0263/ for details for details。
3、根據錯誤提示,在python官網得到如下幫助信息。
4、所以,按照幫助文檔的提示以及例子,在Python文件中加入一個編碼聲明。
5、保存之後,再次運行,運行成功。
原創文章,作者:RKDV,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/144306.html