本人在2016年7月份刚开始学习神经网络,原来是VS写C++,现在什么都换了,VS换成eclipse,C++换成Python,Windows换成Ubuntu,虽说Python比C++简单,可是对于一个写惯了的人来说,刚开始肯定是Python要难过C++。研一下半年那会刚搞C++,也把C++常见错误给罗列出来,方便日后自己知道错误方向,慢慢写得多了,错误基本上一看就知道是哪里蹦错了,到后期也就没有再继续往下写,不过出现的Bug真的是学习语言的最好老师。现在开始学Python调用tensorflow库进行深度学习,也决定将错误规整一下,而且错误解决的程度比C++难多了,因为现在用tensorflow的人还没有用C++的人那么多,时间那么久远。现在只能靠自己慢慢摸索前进。本博客会不断更新,毕竟我博士期间就打算使用神经网络干活了。现在的实习也是要用到神经网络。
不多说了,说多了都是泪,现在开始解决一个个bug,解决过程中也会不断增加我的成就感,fighting。。。
1、SyntaxError: Non-ASCII character ‘\xe5’ in file
弹出的错误提示:
这个错误是初学者常犯的错误,在写代码时一定要注意:
问题原因:
Python默认是以ASCII作为编码方式的,如果在自己的Python源码中(即使是注释部分)包含了中文(或者其他非英语系的语言),此时即使你把自己编写的Python源文件以UTF-8格式保存了,但实际上,这依然是不行的
解决方法:
源代码文件第一行添加:#coding:utf-8,这样就可以避免了,
也可以改为,在第一行增加:#-- coding: UTF-8 --
注:此语句一定要添加在源代码的第一行。
几个概念要先搞清楚:
•默认的python文件是采用ascii编码的,在头部加入# -- coding: utf-8 -- 则指定文件的编码格式是utf-8,那么就是说文件内你可以用中文或其他的文字了。
•cn = u”中文”,这个前缀u代表“中文”是采用unicode编码,也就是cn并不是string而是一个unicode。
•当你用print输出的时候会自动根据本地的语言环境转换成string。
2、IndentationError: expected an indented block
弹出的错误提示:
解决方法:
Python语言是一款对缩进非常敏感的语言,给很多初学者带来了困惑,即便是很有经验的Python程序员,也可能陷入陷阱当中。最常见的情况是tab和空格的混用会导致错误,或者缩进不对,而这是用肉眼无法分别的。
在编译时会出现这样的错IndentationError:expected an indented block说明此处需要缩进,你只要在出现错误的那一行,按空格或Tab(但不能混用)键缩进就行。
往往有的人会疑问:我根本就没缩进怎么还是错,不对,该缩进的地方就要缩进,不缩进反而会出错,,比如:
if xxxxxx:
(空格)xxxxx
或者
def xxxxxx:
(空格)xxxxx
还有
for xxxxxx:
(空格)xxxxx
一句话 有冒号的下一行往往要缩进,该缩进就缩进
3、SyntaxError: ‘return’ outside function