一:代码调试
1:TypeError: 'zip' object is not subscriptable
原代码:
for dog,cat in zip(dp.dogs,dp.cats)[:1000]:
报错:
TypeError: 'zip' object is not subscriptable
解决方法:使用list包装zip对象,如下,
for dog,cat in list(zip(dp.dogs,dp.cats))[:1000]:
2:python错误之ImportError: No module named 'cPickle'
在python3.x下使用如下代码:
import cPickle as pk
会报如下错误:
ImportError: No module named 'cPickle'
原因:python2有cPickle,但是在python3下,是没有cPickle的;
解决办法:将cPickle改为pickle即可,代码如下:
import pickle as pk
3:成功解决Python3版UnicodeDecodeError: 'ascii' codec can't decode byte 0x90 in position 614: ordinal not in
解决方法
将
training_data, validation_data, test_data = cPickle.load(f)
改为
training_data, validation_data, test_data = cPickle.load(f,encoding='bytes')
二:其他知识点
关于API和SDK的个人理解及两者区别
1.SDK是什么?
SDK:
概念:软件开发工具包(SDK,全称:Software Development Kit)
一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。
通俗点是指由第三方服务商提供的实现软件产品某项功能的工具包。
就相当于很多API和其他文件的集合体,你可以用这个完成某一个事情。
举例子:
整个计算器产品可以看做是一个SDK,它里面有API集合(计算器),说明文档(说明书),以及一些其他文件。
这个SDK的功能就是计算,可能要算什么不确定,但是你可以通过这个SDK中的某个方法完成,实现你的目的。
2.API是什么?
API:
概念:API(Application Programming Interface,应用程序编程接口)
一般是指一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
其实就是别人已经写好的可以实现特定功能的函数,而你只需要根据他提供好的接口,也就是调用他的方法,传入他规定的参数,然后这个函数就会帮你实现这些功能。
一句话:SDK包含API
CLASS 与def区别:
class是一个面向对象的类,用来描述具有相同的属性和方法的对象的集合,它定义了该集合中每个对象所共有的属性和放啊。对象是类的实例。
类就相当于一个模板,模板里面可以包含很多函数(例如:def),函数里面实现一些功能
举例说明:
class MyTestCase(unittest.TestCase):#class 是关键字(表示要开始创建类了),MyTestCase是新建的类名称
def test_login(self): #test_login被称为函数
url=“http://www.baidu.com” #实现的功能
print(“begin”)
类在用的时候需要实例化,而函数再用的时候则不需要
在类中定义函数,类和函数都可作为一个模块保存。要调用类或函数只需要import这个类或函数所在模块名称就可以了。
在一个模块当然可以访问另外一个模块的类。