黑马程序员技术交流社区

标题: python运行时的几个常见错误 [打印本页]

作者: promo    时间: 2018-8-2 00:04
标题: python运行时的几个常见错误
本人总结了几个导致程序报错的几个小总结。  1)忘记在 if, elif , else , for , while , class ,def 声明末尾添加 :(导致 “SyntaxError
  :invalid syntax”)
  该错误将发生在类似如下代码中:
  if spam == 42
  print('Hello!')
  2)使用 = 而不是 ==(导致“SyntaxError: invalid syntax”)
  = 是赋值操作符而 == 是等于比较操作。该错误发生在如下代码中:
  if spam = 42:
  print('Hello!')
  3)错误的使用缩进量。(导致“IndentationError:unexpected
  indent”、“IndentationError:unindent does not match any outer indetation
  level”以及“IndentationError:expected an indented block”)
  记住缩进增加只用在以:结束的语句之后,而之后必须恢复到之前的缩进格式。该错误发生在如下代码中:
  print('Hello!')
  print('Howdy!')
  或者:if spam == 42:
  print('Hello!')
  print('Howdy!')
  或者:if spam == 42:
  print('Hello!')
  4)在 for循环语句中忘记调用 len()(导致“TypeError: ‘list’ object cannot be interpreted as
  an integer”)
  通常你想要通过索引来迭代一个list或者string的元素,这需要调用 range() 函数。要记得返回len 值而不是返回这个列表。
  该错误发生在如下代码中:
  spam = ['cat', 'dog', 'mouse']for i in range(spam):
  print(spam)
  5)尝试修改string的值(导致“TypeError: ‘str’ object does not support item
  assignment”)
  string是一种不可变的数据类型,该错误发生在如下代码中:
  spam = 'I have a pet cat.'spam[13]
  = 'r'print(spam)
  而你实际想要这样做:
  spam = 'I have a pet cat.'spam = spam[:13]
  + 'r' + spam[14:]
  print(spam)
  6)尝试连接非字符串值与字符串(导致 “TypeError: Can’t convert ‘int’ object to str
  implicitly”)
  该错误发生在如下代码中:
  numEggs = 12print('I have ' + numEggs + ' eggs.')
  而你实际想要这样做:
  numEggs = 12print('I have ' + str(numEggs) + ' eggs.')
  或者:
  numEggs = 12print('I have %s eggs.' % (numEggs))








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2