弹出的错误提示:
这个错误是初学者常犯的错误,在写代码时必定要注意:python
问题缘由:
Python默认是以ASCII做为编码方式的,若是在本身的Python源码中(即便是注释部分)包含了中文(或者其余非英语系的语言),此时即便你把本身编写的Python源文件以UTF-8格式保存了,但实际上,这依然是不行的函数
解决方法:
源代码文件第一行添加:#coding:utf-8,这样就能够避免了,
也能够改成,在第一行增长:#-- coding: UTF-8 –编码
注:此语句必定要添加在源代码的第一行。spa
几个概念要先搞清楚:
•默认的python文件是采用ascii编码的,在头部加入# – coding: utf-8 – 则指定文件的编码格式是utf-8,那么就是说文件内你能够用中文或其余的文字了。
•cn = u”中文”,这个前缀u表明“中文”是采用unicode编码,也就是cn并非string而是一个unicode。
•当你用print输出的时候会自动根据本地的语言环境转换成string。3d
这是弹出的问题界面,从问题界面中咱们能够看到具体出错是在哪一行出错的。如图中绿色框中即是代码出错的语句。根据提示的错误是传入数据的类型不对,经过调整数据类型来解决问题。调试
例如:日志
import tensorflow as tf import matplotlib.image as mpimg import matplotlib.pyplot as plt #加载图像 filename ="MarshOrchid.jpg" image = mpimg.imread(filename) #建立tensorflow变量 x = tf.Variable(image,name='x') model = tf.initialize_all_variables() # ///////////////// 此时报错IOError: broken data stream when reading image file
更改后code
import matplotlib.image as mpimg import matplotlib.pyplot as plt import tensorflow as tf #加载图像 filename ="MarshOrchid.jpg" image = mpimg.imread(filename) #建立tensorflow变量 x = tf.Variable(image,name='x') model = tf.initialize_all_variables() # /////////////////////// 再也不报错
这个错误分为两种状况,一种状况是运行时出现这个错误,另外一种状况是运行时不弹出错误,可是在调试代码时出现错误。下面根据两方面来探讨解决方法。
不管是调试仍是运行,若是单从错误看来是你使用的对象没有定义,你须要检查程序中函数是否写正确。这一点是必需要作的。
状况1:若是在运行时出现这个错误,这颇有多是你程序中某个单词拼写错误了,有时候函数名错误是不会出现红色错误提示符的。则可根据下方给出的错误提示中的print type(XXX)找到问题所在,由于xxx 就是表明调用出错的对象的名称,就是报错日志所在行的代码被调用的对象的名称。
状况2:在运行时不出现错误,调试时出错误。做为程序猿,少则百行,多则数万行的代码都是要写得,有时为了减小错误,不少人都会选择编写完一个功能函数运行一下或者调试一下来看看总体有无拼写错误。本人就喜欢有这个习惯。今天写完一个函数,点运行时错点了调试,当时感受反正你们都差很少,调试就调试吧,然而调试时居然蹦出这个错误,查了半天也不知为何,由于这个错误蹦出的后半段与状况1蹦出的错误不一样,总体错误是:“Exception TypeError: TypeError("‘NoneType’ object is not callable",) in <function _remove at 0x7f44bbc436e0> ignored”试了半天才知道,原来我如今调试的程序中只有定义好的函数,并无对函数进行调用,就是由于这个缘由致使你在调试时出错误。因此你只要加上调用那部分函数的代码就没有问题了。对象