繁体   English   中英

无效的语法错误python 3.5.2

[英]Invalid Syntax error python 3.5.2

我在此特定行中出现语法错误。

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

几件事:

  • 在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()

尝试这个:

print ("Sense %s:" %i)

会很好的工作

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM