Python问题:SyntaxError: Non-ASCII character '\xe2' in file
#!/usr/bin/python
class Employee:
'the base class of every employee'
empCount = 0
def _init_(self,name,salary):
self.name=name
self.salary=salary
Employee.empCount +=1
def displayCount(self):
print 'total employee is %d' % Employee.empCount
def displayEmp(self):
print 'Name :',self.name,'Salary :',self.salary
t1 = input ‘please enter a name’
t2 = input 'please enter salary'
emp1 = Employee(t1,t2)
emp1.displayCount
emp1.displayEmp
结果:
File "C:\Users\i319594\Desktop\Python\employee.py", line 19
SyntaxError: Non-ASCII character '\xe2' in file C:\Users\i319594\Desktop\Python\
employee.py on line 19, but no encoding declared;
想问下有人知道这是什么原因吗? 展开
在python中出现该问题是因为文件格式编码出现了问题,具体原因和解决方法如下:
原因分析“SyntaxError: Non-ASCII character '\xe2' in file”翻译为中文的意思是:在文件中存在着非法的ASCII字符
2.ASCII是8位即为一个字符,一共有256个字符,随着计算机的快速发展,现在已经发展到使用2个或者4个字符
3.出现该问题最常见于代码中出现中文字样,由于中文与英文编码上的差别而导致了错误。
4.解决方法:可以在文件头追加: # -*- coding: cp936 -*-
或者 # -*- coding: utf-8 -*这几段编码,同时建议编码时尽量少用中文表达,这不仅有利于减少代码编译错误,也能培养好的代码编写思维
拓展资料:
1.ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。
2.请注意,ASCII是American Standard Code for Information Interchange缩写,而不是ASCⅡ(罗马数字2),有很多人在这个地方产生误解。
3.在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)、以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,
4.而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台了ASCII编码,统一规定了上述常用符号用哪些二进制数来表示。
参考资料:ASCII_百度百科
解决如下:
SyntaxError: Non-ASCII character '\xe2' in file意思是说,在文件中存在非ASCII字符;
ASCII是8位即一个字符,一共256个字符,随着计算机的发展,现在已经用到2个或者4个字符;
建议在文件头追加:
# -*- coding: cp936 -*-
或者
# -*- coding: utf-8 -*更复杂的形式要进行编码和解码。
t1 = input ‘please enter a name’
t2 = input 'please enter salary'
仔细看看符号
还有在windows下面不需要写
#!/usr/bin/python
input是个方法,你得input("xxxxxx")来调用
而input的实际源码实现是:
def input(prompt):
return eval(raw_input(prompt))
raw_input()返回的是str串,input则会识别相应的类型,如int
你代码里Employee这个类,定义的时候是没有参数的。你这儿调的时候又给了
手机上看的,看错了,你类定义的时候没跟括号