精彩牛耳,用心缔造

0基础学习Python容易犯哪些错误呢?

作者: 编辑: 来源: 发布日期: 2019.04.09
信息摘要:
1.忘记写冒号在if、elif、ele、for、while、cla、def语句后面忘记添加“:”ifam==42rit('Hello!')2…

1. 忘记写冒号

在if、elif、else、for、while、class、def 语句后面忘记添加“:”

if spam == 42

print('Hello!')


2. 误用 “=” 做等值比较

“=”是给变量赋值,“==”才是判断两个值是否相等:

score = 60

if score = 60:

print ('passed')

改正:

score = 60

if score == 60:

print ('passed')


3. 变量没有定义:

if age >= 18:

print ('adult')

print ('END')

会导致:NameError: name ‘age’ is not defined.

改正:

age = 20

if age >= 18:

print ('adult')

print ('END')


4. 字符串与非字符串连接

错误:

num = 12

print('I have ' + num+ ' apples.')

非字符串和字符串连接的时候,要将非字符串转换为字符串类型之后才能连接,改正:

num = 12

print('I have ' + str(num)+ ' apples.')



5. 列表的索引位置

习惯性地认为列表元素的位置是从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 = 0

spam++

这时可以使用“+=” 来代替 “++”,改正:

spam = 0

spam += 1


7. 使用关键字命名变量

Python 3中一共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']

for i in range(fam):

print(fam[i])

改正:

fam = ['dad', 'mom', 'son']

for i in range(len(fam)):

print(fam[i])


9. 函数中的局部变量赋值前被使用

num = 42

def myFunction():

print(num)

num = 100

myFunction()

第一行定义了一个全局变量num,同时函数myFunction( )也定义了一个同名的局部变量,但程序执行时是先查找局部变量的,所以在函数中找到num之后就不到外部查找了,此时就会出现print的时候变量num还没赋值的错误。


10. 缩进问题

和其他语言的语法最大的不同就是,Python不能用括号来表示语句块,也不能用开始或结束标志符来表示,而是靠缩进来区分代码块的。

常见的错误用法:

(1)

print('Hello')

print('World!')

错误是第二行的缩进会导致两个print语句是包含和被包含的关系,但他们两者是属于同一个代码块的,所以应该写成;

print('Hello')

print('World!')


(2)

if spam == 42:

print('Hello')

print('World!')

错误是第三行的缩进,改正的方法有两种,一是如果两个print语句是属于同一代码块的,应该改正为

if spam == 42:

print('Hello')

print('World!')

二是如果第三行的print语句是和if语句是同一级的,则改正为

if spam == 42:

print('Hello')

print('World!')


(3)在Python 3中,缩进的时候,不能Tab和空格混用,每个缩进层次应该选择只使用Tab或者只使用空格。


来牛耳,学习企业需要的编程技能!

送你企业入场券!

牛耳推荐资讯
教育厅公布线下复学通知,这期间做好这四件事

教育厅公布线下复学通知,这期间做好这四件事

一场突如其来的疫情似乎让一切放慢了脚步,但是“停课不停学”,深圳、广州、武汉、杭州、北京,湖北、云南、江苏……疫情期间,全国20多省市,通过搭建在线课堂,助力数千万学生“不停学”。近日,湖南省出台最新线下复课时间,预计在4月上旬至中旬陆续错峰开学。这个超长假期除了每天关注疫情外,线上学习也成了一......
2020-03-31
牛耳教育-Java开发稳步进阶之不容忽视的“索引”

牛耳教育-Java开发稳步进阶之不容忽视的“索引”

作为Java工程师,MySQL数据库的灵活运用是必须掌握的技能。而“索引”作为数据库的两大神器之一,有很多初学Java的同学在接触时感觉无从下手,接下来我们把MySQL数据库索引相关的知识点仔细梳理一遍。一、覆盖索引如果一个索引包含了满足SQL语句中字段与条件的数据,那么它就叫做覆盖索引。覆盖索引只需要在一棵索引......
2020-03-30
牛耳教育丨Java开发稳步进阶之JVM内存区域

牛耳教育丨Java开发稳步进阶之JVM内存区域

Java语言最重要的特点之一:跨平台使用,正是由于JVM的存在。想要Java开发稳步进阶,学JVM这条路绕不开。为什么要学JVM我们都知道,要做Java开发,必须在你的电脑上安装JDK才行,安装JDK之后里面会有一个JRE的目录,JRE提供了软件环境----JVM。在开发过程中当我们出现内存泄漏、内存溢出的时候我们不应该想到-Xm去设置......
2020-03-27

咨询热线

400-0731-162
  
    • *

    • *