1。忘记写冒号if,elif,else,for,while,class,def语句后忘记加“:”ifspam==42print('Hello!')2.误用“=”进行相等比较“=”是给变量赋值,而“==”是判断两个值是否相等:score=60ifscore=60:print('passed')更正:score=60ifscore==60:print('passed')3.变量未定义:如果age>=18:print('adult')print('END')将导致:NameError:name'age'isnotdefined。更正:age=20ifage>=18:print('adult')print('END')4.字符串与非字符串连接错误:num=12print('Ihave'+num+'apples.')当连接非-strings和strings,非字符串必须转成字符串才能连接。更正:num=12print('Ihave'+str(num)+'apples.')5.Listof索引位置习惯上认为list元素的位置从1开始:spam=['cat','dog','mouse']print(spam[3])列表元素的位置从0开始,所以第3个元素“mouse”的索引位置为2,更正:spam=['cat','dog','mouse']print(spam[2])6.使用自增“++”和自减“—”学过c语言或者java的人都会很习惯使用i++或者i—,但是Python中没有自增自减运算符:spam=0spam++这时候可以用“+=”代替“++”,对:spam=0spam+=17.使用关键字来命名Python3中的变量共33个关键字:False,None,True,and,as,assert,break,class,continue,def,del,elif,else,except,finally,for,from,global,if,import,in,is,lambda、nonlocal、not、or、pass、raise、return、try、while、with、yield自定义变量时,变量名不能与这些关键字重复8.索引元素位置时,忘记调用len方法获取通过索引位置元素的列表,忘记先使用len函数获取列表的长度:fam=['dad','mom','son']foriinrange(fam):print(fam[i])更正:fam=['dad','mom','son']foriinrange(len(fam)):print(fam[i])9.赋值前使用函数中的局部变量num=42defmyFunction():print(num)num=100myFunction()***定义了一个全局变量num,函数myFunction()也定义了一个同名的局部变量,但是程序执行的时候会先查找局部变量,所以在函数中找到num之后就没有外部查找了,这时候打印的时候就会出现变量num还没有赋值的错误。10、缩进问题与其他语言的语法最大的区别在于Python不能用括号来表示语句块,也不能用开始或结束标记来表示,而是依靠缩进来区分代码块。常见的错误用法:(1)print('Hello')print('World!')错误是第二行的缩进会导致两个打印语句包含和被包含,但是它们都属于同一个A代码块,所以应该写成;print('Hello')print('World!')(2)ifspam==42:print('Hello')print('World!')错误是第三行缩进,有两种方法可以改正,一个是如果两个打印语句属于同一个代码块,应该更正为ifspam==42:print('Hello')print('World!')第二个是如果第一个三行打印语句与if语句同级,所以更正为ifspam==42:print('Hello')print('World!')(3)在Python3中,缩进时,不能使用Tabs和空格混合,每个缩进级别应选择仅使用制表符或仅使用空格。
