新手初学Python最常犯的十个错误,其中有你吗

发表于:2018-9-29 10:02

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:佚名    来源:今日头条

#
Python
  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或者只使用空格。

   上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号