语法错误python 3.5.2无效

时间:2016-10-11 21:19:14

标签: python python-3.x syntax

我在这一特定行中遇到语法错误。

print "Sense %i:" %(i),

完整代码:

for i in range(len(meas)):
    p = sense(p, meas[i])
    r = [format(j,'.3f') for j in p]
    print "Sense %i:" % (i),
    print r,
    entropy(p)
    p = move(p, mov[i])
    r = [format(j,'.3f') for j in p]
    print "Move %i:" % (i),
    print r,
    entropy(p)
    print

3 个答案:

答案 0 :(得分:1)

有几件事:

  • 在Python 3中,print是一个函数,不再是Python 2的声明。所以,你需要添加括号来调用函数,
  • 不推荐使用用于字符串格式设置的%运算符。使用Python 3,您应该使用format方法(或format函数),
  • %运算符通常将tuple作为第二个参数:表达式“(i)”不是tuple而是常量。使用Python,单例tuple有一个这样的尾随逗号:“(i,)”。
  • 使用关键字参数end=""用空字符串替换换行符(但我不确定这是你想要的)

因此,您可以通过以下方式替换代码:

print("Sense {}:".format(i), end="")

编辑:添加评论代码

您的代码应该在Python 3中转换,如下所示:

for i in range(len(meas)):
    p = sense(p, meas[i])
    r = [format(j,'.3f') for j in p]
    print("Sense {0}:".format(i), end="")
    print(r, end="")
    entropy(p)
    p = move(p, mov[i])
    r = [format(j,'.3f') for j in p]
    print("Move {0}:".format(i), end="")
    print(r, end="")
    entropy(p)
    print()

答案 1 :(得分:0)

试试这个:

print ("Sense %s:" %i)

工作得很好

答案 2 :(得分:0)

在python 3中,print是一个函数,你必须使用括号:print("Sense %i:" %(i))