2016-06-01 25 views
5

Używam Pythona sporadycznie przez kilka miesięcy, wiem, że możemy używać komentarzy # i" "" lub "" do komentowania. Ale gdy chciałem skomentować niektóre elementy ze słownika, z komentarzem (""), zawiodłem.Komentarze w języku Python Błąd przy użyciu "" "lub" "w słowniku

testItems = { 
'TestOne': 
{ 
    "NameId":101 
    "Score":99 
}, 

''' 
'TestTwo': 
{ 
    "NameId":101 
    "Score":99 
} 
''' 
} 

następnie uzyskać ther błąd SyntaxError: invalid syntax skierowaną do ostatniego ''” pozycję.

Wiem też, że istnieje pewna zasada wcięć w języku Pythona. Ale próbowałem wielu możliwości wcięcia, wciąż nie udało mi się.

enter image description here

+0

hmm, myślę, że masz zwisające, po pierwszym wejściu – mortonjt

+10

ciągi wielowierszowe nie są komentarze. –

+0

usunąć ten wielowierszowy komentarz z wnętrza słownika. –

Odpowiedz

3

można używać tylko ''' lub """ komentować gdzie łańcuchy są dopuszczone jako takie nie tworzą komentarze, ale tylko ciągi.

W opisywanej sytuacji nie można umieścić napisu. Przenieś zamknięcie } w górę lub odkomentuj niechcianą linię kodu po linii.

Doing

test_items_1 = { 
    "NameId":101, 
    "Score":99 
} 

test_items_2 = { 
    "NameId":101, 
    "Score":99 
} 

testItems = { 
    'TestOne': test_items_1, 
# 'TestTwo': test_items_2, 
} 

będzie działać jak również.

+0

Powinny istnieć przecinki między parami klucz-wartość '" NameId "' i '" Wynik "' w pierwszych dwóch słownikach. –

+0

@ KevinJ.Chase Dziękujemy! Naprawiłem to. – glglgl

+2

Przyszło mi na myśl, że "nie wolno ci stawiać ciągów" również nie jest w porządku ... Ciągi są prawidłowymi kluczami słownika. Problem polega na tym, że nie następuje dwukropek i wartość. Zobacz odpowiedź [Prabhakara] (https://stackoverflow.com/questions/37560576/4116239). –

1

Jak wspomina Ilja Everilä, w pytonie nie ma komentarza wielowierszowego. Chociaż kiedy skopiowałem twój kod do mojego tempa, to nie dało mi to żadnego błędu. Nadal, w twoim przypadku, polecam użyć metody komentowania w jednym wierszu (#). Mimo to można użyć "" "..." "lub" "" ... "" "(przekonwertować tę część na ciąg), ale spowoduje to jedynie zwiększenie linii kodu. Jadąc do twojego pytania, otrzymujesz błąd, ponieważ:

Twój kod może być zapisane jako:

testItems = { 'TestOne': { "NameID": 101, "Score": 99 }'' ' 'testtwo': { "NameID": 101 "wynik": 99} '''}

to jak pyton czyta, jak chcesz zachować część pogrubioną i komentarz do kursywy. Po prostu nie możesz użyć łańcucha. Jak widać, python bierze całą część w nawiasach klamrowych (pogrubienie + kursywa) jako pojedynczą całość. Więc albo użyj #, albo usuń tę część stamtąd.

Można przepisać jako:

testItems = { 
    'TestOne': 
     { 
      "NameId":101, 
      "Score":99 
     } 
    # 'TestTwo': 
    #  { 
    #   "NameId":101, 
    #   "Score":99 
    #  } 
} 
1

Wartości pomiędzy ''' lub """ wewnątrz słownika zostaną uznane za inną pozycję, nie komentować.

W twoim przypadku treść między ''' jest traktowana jako klucz innego przedmiotu w tym słowniku.

Musisz użyć #, aby skomentować niechciane kody.

Ex:

testItems = { 
'TestOne': 
{ 
    "NameId":101, 
    "Score":99 
}, 

# 'TestTwo': 
# { 
# "NameId":101 
# "Score":99 
# } 

} 
+1

Jest to pierwsza odpowiedź, która wyraźnie określa problem: Błąd składniowy nie ma nic wspólnego z tym, co _instrukcję_ ciągiem, a nawet faktem, że jest łańcuchem --- problemem jest wieloliniowy ** klawisz słownika ** ''' '' TestTwo ': {...}' ''' nie jest poprzedzone dwukropkiem i wartością. Właśnie dlatego jego IDE narysowało czerwoną falistą linię, w miejscu, gdzie powinno się pojawić ':'. –

Powiązane problemy