简单整数赋值时语法错误无效

时间:2014-05-02 01:44:11

标签: python variables syntax integer variable-assignment

我想我遇到了编码问题。当我更改为utf-16时,错误将更改为第一行“导入温度”

我安装了Python 3.x思考可能是版本问题,但症状相同。

我一直在运行的其他练习脚本运行良好。有什么想法吗?

Python表示语法错误发生在“temp = 0”

##### modules.py文件
import temperature

temp = 212
convTemp = temperature.ftoc(temp)
print("The converted temp is " + str(convTemp))
temp = 0
convTemp = temperature.ctof(temp)
print("The converted temp is " + str(convTemp))
#### temperature.py文件内容
def ftoc(temp):
    return (5.0/9.0) * (temp - 32.0)

def ctof(temp):
    return (9.0/5.0) * temp + 32.0
从原始帖子更正代码后的结果。
hostname$ python modules.py
Traceback (most recent call last):
  File "modules.py", line 1, in <module>
    import temperature
  File "/Users/[myusername]/Dropbox/python/temperature.py", line 1
SyntaxError: Non-ASCII character '\xfe' in file /Users/[myusername]/Dropbox/python/temperature.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
hostname$

2 个答案:

答案 0 :(得分:1)

这确实是编码问题。对于UTF-16编码,\xFEBOM(\xFE \xFF)的一部分。

使用UTF-16作为Python源代码并不是一个好主意。您无法使用编码标记为Python解析器提供源文件的源代码编码提示。如

# encoding: utf-8

有关详细说明,请参阅PEP-0263,以下是重要信息的一部分:

  

允许以上述方式处理前两行的任何编码作为源代码编码,这包括ASCII兼容编码以及某些多字节编码,例如Shift_JIS。它不包括对所有字符使用两个或多个字节的编码,例如UTF-16 即可。这样做的原因是使编码检测算法在标记化器中保持简单。

答案 1 :(得分:0)

from temperature import ftoc
from temperature import ctof

这是多余的,因为您使用

导入了所有温度函数
import temperature

您的语法错误,打印语句末尾缺少parens。

如果您需要str(temperature),还可以str(convTemp)。解决这些问题,我认为它会正常工作。