一殴玛、錯(cuò)誤
????語法錯(cuò)誤會(huì)導(dǎo)致程序代碼不能被解釋器解釋,這些錯(cuò)誤必須在程序執(zhí)行前糾正添祸。當(dāng)程序的語法正確后滚粟,剩下的就是邏輯錯(cuò)誤了。邏輯錯(cuò)誤可能是由于不完整或是不合法的代碼邏輯所致刃泌,還可能是由于代碼邏輯無法生成或執(zhí)行凡壤。
????在運(yùn)行或編寫一個(gè)程序時(shí)常會(huì)遇到錯(cuò)誤異常署尤,這時(shí)python會(huì)給你一個(gè)錯(cuò)誤提示類名,告訴出現(xiàn)了什么樣的問題
常見錯(cuò)誤
1.NameError?表示命名錯(cuò)誤---名字沒被定義亚侠。
2.SyntaxError異常是語法錯(cuò)誤曹体。
3.TypeErrors類型錯(cuò)誤。
4.IndentationError縮進(jìn)錯(cuò)誤硝烂。
5.ValueError.值錯(cuò)誤箕别。
6.ZeroDivisionError零不能做被除數(shù)。
或者:
? ?1.忘記在if,elif,else?,for?,while?末尾添加":"(導(dǎo)致?“SyntaxError?:invalid syntax”)
該錯(cuò)誤將發(fā)生在類似如下代碼中:
? ? if spam == 42
??? print('Hello!')4.
? ? 2.變量或者函數(shù)名拼寫錯(cuò)誤(導(dǎo)致“NameError: name 'fooba' is not defined”)
該錯(cuò)誤發(fā)生在如下代碼中:
????foobar = 'Al'
????print('My name is '+ fooba)
????3.使用?=?而不是?==(導(dǎo)致“SyntaxError: invalid syntax”)
=?是賦值操作符而?==?是等于比較操作滞谢。該錯(cuò)誤發(fā)生在如下代碼中:
????if spam = 42:
??? print('Hello!')
????4.嘗試修改string的值(導(dǎo)致“TypeError: 'str' object does not support itemassignment”)
字符串是一種不可變的數(shù)據(jù)類型究孕,該錯(cuò)誤發(fā)生在如下代碼中
????spam = 'I have apet cat.'
????spam[13] = 'r'
????print(spam)
而你實(shí)際想要這樣做:
????spam = 'I have apet cat.'
????spam = spam[:13] +'r' + spam[14:]
????print(spam)
????5.在字符串首尾忘記加引號(hào)(導(dǎo)致“SyntaxError: EOL while scanning string literal”)
該錯(cuò)誤發(fā)生在如下代碼中:
?????print(Hello!')