Python初学者常见错误忘记写冒号Misuse=errorcondensedvariableisnotdefined不同数据类型的拼接索引位置使用字典中不存在的key导致的中英文输入法错误忘记括号丢失参数缺少依赖library我在python中使用了关键字的编码。问题1.我忘记写冒号了。我忘了在if、elif、else、for、while和def语句之后添加:age=42ifage==42print('Hello!')age=42ifage==42print('Hello!')File"",line2ifage==42^SyntaxError:invalidsyntax2。误用==是赋值操作,判断两个值是否相等是==gender='Male'ifgender='Male':print('Man')File"",line2ifgender='Male':^SyntaxError:invalidsyntax3。不正确的缩进Python使用缩进来区分代码块,常见的错误用法:print('Hello!')print('Howdy!')File"",line2print('Howdy!')^IndentationError:unexpectedindentnum=25ifnum==25:print('Hello!')File"",line3print('Hello!')^IndentationError:expectedanindentedblock4。变量未定义ifcityin['NewYork','BeiJing','Tokyo']:print('Thisisamegacity')--------------------------------------------------------------------NameErrorTraceback(mostrecentcalllast)in---->1ifcityin['NewYork','BeiJing','Tokyo']:2print('Thisisamegacity')NameError:name'city'isnotdefined5.中英文输入法英文冒号、英文括号、英文逗号、英文单双引号引起的错误if5>3:print('5islargerthan3')File"",line1if5>3:^SyntaxError:invalidcharacterinidentifierif5>3:print('5isbiggerthan3')File"",line2print('5isbiggerthan3')^SyntaxError:invalidcharacterinidentifierspam=[1复制代码,2,3]File"",line1spam=[1,2,3]^SyntaxError:invalidcharacterinidentifierif5>3:print('5isbiggerthan3')File"",line2print('5大于3Big')^SyntaxError:EOLwhilescanningstringliteral6。不同数据类型的字符串/列表/元组拼接支持字典/集合拼接不支持拼接'Ihave'+12+'eggs.'#'Ihave{}eggs.'.format(12)-------------------------------------------------------------------------TypeErrorTraceback(mostrecentcallast)in---->1'Ihave'+12+'eggs.'TypeError:canonlyconcatenatestr(not"int")tostr['a','b','c']+'def'-----------------------------------------------------------------------TypeErrorTraceback(mostrecentcallast)in---->1['a','b','c']+'def'TypeError:canonlyconcatenatelist(not"str")tolist('a','b','c')+['a','b','c']--------------------------------------------------------------------TypeErrorTraceback(mostrecentcalllast)in---->1('a','b','c')+['a','b','c']TypeError:canonlyconcatenatetuple(not"list")totupleset(['a','b','c'])+set(['d','e'])------------------------------------------------------------------------TypeErrorTraceback(mostrecentcalllast)in---->1set(['a','b','c'])+set(['d','e'])TypeError:unsupportedoperandtype(s)for+:'set'and'set'grades1={'Mary':99,'Henry':77}grades2={'David':88,'Unique':89}grades1+grades2------------------------------------------------------------------------TypeErrorTraceback(mostrecentcallast)in2grades2={'David':88,'Unique':89}3---->4grades1+grades2TypeError:unsupportedoperandtype(s)for+:'dict'and'dict'7。索引位置Questionspam=['cat','dog','mouse']print(spam[5])----------------------------------------------------------------------IndexErrorTraceback(mostrecentcalllast)in1spam=['cat','dog','mouse']---->2print(spam[5])IndexError:listindexoutofrange8。使用字典中不存在的key访问字典对象中的key可以使用[],但是如果key不存在,会导致:KeyError:'zebra'spam={'cat':'Zophie','dog':'Basil','mouse':'Whiskers'}print(spam['zebra'])--------------------------------------------------------------------------KeyErrorTraceback(mostrecentcalllast)in3'mouse':'Whiskers'}4---->5print(spam['zebra'])KeyError:'zebra'为了避免这种情况,可以使用get方法spam={'cat':'Zophie','dog':'Basil','mouse':'Whiskers'}print(spam.get('zebra'))当Nonekey不存在时,get默认返回None9。忘记括号在函数中传递函数或方法时,很容易漏掉括号spam={'cat':'Zophie','dog':'Basil','mouse':'Whiskers'}print(垃圾邮件.get('zebra')File"",line5print(spam.get('zebra')^SyntaxError:unexpectedEOFwhileparsing10.缺少参数defdiyadd(x,y,z):returnx+y+zdiyadd(1,2)------------------------------------------------------------------------TypeErrorTraceback(mostrecentcalallast)in2returnx+y+z3---->4diyadd(1,2)TypeError:diyadd()missing1requiredpositionalargument:'z'11.Missingdependentlibrary电脑中没有相关的库12.python中使用关键字如try,except,def,class,object,None,True,False等try=5print(try)File"",line1try=5^SyntaxError:invalidsyntaxdef=6print(6)File"",line1def=6^SyntaxError:invalidsyntax13.文件编码问题importpandasaspddf=pd.read_csv('data/twittersentimentanalysisdataset.csv')df.head()尝试将编码参数传入utf-8,gbkdf=pd.read_csv('data/twittersentimentanalysisdataset.csv',encoding='utf-8')df.head()都报错,说明en编码不是utf-8和gbk,而是一种不常见的编码。这里我们需要传入正确的编码才能让程序运行起来。Python有一个chardet库,专门用来做检测的。测试代码。importchardetbinary_data=open('data/twittersentimentanalysisdataset.csv','rb').read()chardet.detect(binary_data){'encoding':'Windows-1252','confidence':0.7291192008535122,'language':''}