Python问题:SyntaxError: Non-ASCII character '\xe2' in file

代码如下#!/usr/bin/pythonclassEmployee:'thebaseclassofeveryemployee'empCount=0def_init_(s... 代码如下
#!/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;

想问下有人知道这是什么原因吗?
展开
 我来答
拾趣世界
高粉答主

推荐于2019-09-03 · 分享新鲜事,感谢关注
拾趣世界
采纳数:11 获赞数:86027

向TA提问 私信TA
展开全部

在python中出现该问题是因为文件格式编码出现了问题,具体原因和解决方法如下:

  1. 原因分析“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_百度百科

yycgis
推荐于2018-06-21 · TA获得超过8267个赞
知道大有可为答主
回答量:6831
采纳率:63%
帮助的人:1593万
展开全部

解决如下:

  1. SyntaxError: Non-ASCII character '\xe2' in file意思是说,在文件中存在非ASCII字符;

  2. ASCII是8位即一个字符,一共256个字符,随着计算机的发展,现在已经用到2个或者4个字符;

  3. 建议在文件头追加:

  4. # -*- coding: cp936 -*-
    或者
    # -*- coding: utf-8 -*
  5. 更复杂的形式要进行编码和解码。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tufeididi007
2017-11-12 · TA获得超过2125个赞
知道大有可为答主
回答量:2698
采纳率:76%
帮助的人:1249万
展开全部
t1 = input ‘please enter a name’
t2 = input 'please enter salary'

仔细看看符号

还有在windows下面不需要写

#!/usr/bin/python
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
neosicifore
推荐于2016-01-26 · TA获得超过2258个赞
知道小有建树答主
回答量:446
采纳率:66%
帮助的人:499万
展开全部

input是个方法,你得input("xxxxxx")来调用

而input的实际源码实现是:

def input(prompt):
    return eval(raw_input(prompt))

 raw_input()返回的是str串,input则会识别相应的类型,如int

追答
你代码里Employee这个类,定义的时候是没有参数的。你这儿调的时候又给了
手机上看的,看错了,你类定义的时候没跟括号
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
heptnaol
2017-12-01 · TA获得超过7263个赞
知道大有可为答主
回答量:7120
采纳率:78%
帮助的人:1821万
展开全部
t1 那一行,引号有毛病
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式