簡體   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