首頁>Program>source

我正在處理HP Code wars 2012中的字母分配問题。我不斷收到一條錯誤訊息,指出標識符中的無效字元.這是什麼意思,以及如何解決.這是帶有資訊的頁面. hpcodewars.org/past/cw15/problems/2012ProblemsFinalForPrinting.pdf 這是代碼

import  string
def  text_analyzer(text):
'''The text to be parsed and
the number of occurrences of the letters given back
be. Punctuation marks, and I ignore the EOF
simple. The function is thus very limited.
'''
    result =  {}
# Processing
    for  a in  string.ascii_lowercase:
    result [a] =  text.lower (). count (a)
    return  result

def  analysis_result (results):
# I look at the data
    keys =  analysis.keys ()
    values \u200b\u200b=  list(analysis.values \u200b\u200b())
    values.sort (reverse = True )
# I turn to the dictionary and
# Must avoid that letters will be overwritten
    w2 =  {}
    list =  []
    for  key in  keys:
        item =  w2.get (results [key], 0 )
        if  item = =  0 :
            w2 [analysis results [key]] =  [key]
        else :
            item.append (key)
            w2 [analysis results [key]] =  item
# We get the keys
    keys =  list (w2.keys ())
    keys.sort (reverse = True )
    for  key in  keys:
        list =  w2 [key]
        liste.sort ()
        for  a in  list:
            print (a.upper (), "*"  *  key)        

text =  """I have a dream that one day this nation will rise up and live out the true
meaning of its creed: "We hold these truths to be self-evident, that all men
are created equal. "I have a dream that my four little children will one day
live in a nation where they will not be Judged by the color of their skin but
by the content of their character.
# # # """
analysis result =  text_analyzer (text)
analysis_results (results)
最新回復
  • 5月前
    1 #

    錯誤 SyntaxError: invalid character in identifier 表示您在變數名稱,函式等中間有一些字元,而不是字母,數字或下划線.實際的錯誤訊息將如下所示:

     File "invalchar.py", line 23
        values =  list(analysis.values ())
                    ^
    SyntaxError: invalid character in identifier
    

    這可以告诉您實際的問题是什麼,因此您不必猜測"我的無效字元在哪裏"? 好吧,如果您看那行,那儿会有一堆非print垃圾字元.把它们拿出来,你就会過去的。

    如果您想知道實際的垃圾字元是什麼,我从您的代碼中複製了有問题的行,並將其粘贴到Python解釋器中的字元串中:

    >>> s='    values ​​=  list(analysis.values ​​())'
    >>> s
    '    values \u200b\u200b=  list(analysis.values \u200b\u200b())'
    

    所以這就是 \u200b 或零宽度空間.這就解釋了為什麼您無法在頁面上看到它.最常见的原因是,您已经从CoDebug或wiki之類的網站上複製了某些格式化(非纯文字)代碼,或者从PDF檔案中複製了這些代碼。

    如果您的編輯器没有提供查詢和修複這些字元的方法,只需删除並重新輸入该行即可。

    当然,您也至少有两个 IndentationError 是因為不縮排东西,至少又增加了 SyntaxError 来自停留空間(例如 = = 代替 == )或下划線變成空格(例如 analysis results 代替 analysis_results )。

    問题是,您如何使代碼进入這種狀態? 如果您使用Microsoft word之類的代碼作為代碼編輯器,那就是您的問题.使用文字編輯器.如果不是,那麼,根本的問题是匯致您最终得到這些垃圾字元,縮排的縮排和多餘的空格,請在尝試修複代碼之前對其进行修複。

  • 5月前
    2 #

    如果您的鍵盤是 設置為美国英語(国際)而不是美国英語,双引號無效.這就是在您的情况下單引號起作用的原因.

  • 5月前
    3 #

    不確定這是正確的,但是当我複製一些有關使用pgmpy的代碼並將其粘贴到Spyder下的編輯器中時,尽管没有,但我仍然收到"標識符中的無效字元"錯誤 看起来對我不好.特定的行是 grade_cpd = TabularCPD(variable='G',\

    我没有充分的理由更換了 '" 整个代碼中,並且有效.不知道為什麼,但是它確實起作用

  • 5月前
    4 #

    如果您只執行模組,則在IDLE中不会收到良好的錯誤訊息.尝試从IDLE shell中键入匯入命令,您將获得更多有用的錯誤訊息.我犯了同樣的錯誤,而這一切都与众不同。

    (是的,我是从電子书中複製代碼的,其中充满了看不见的"錯誤"字元。)

  • 5月前
    5 #

    仔细查看您的報價,這是對還是錯! 有時双引號無法正常工作,這取決於您的鍵盤佈局。

  • java:如何使用可變引數和反射
  • javascript:在量角器中,browserisElementPresent与elementisPresent与elementisElementPresent