ValueError: kan niet overschakelen van handmatige veldspecificatie naar automatische veldnummering

De klas:

class Book(object):
    def __init__(self, title, author):
        self.title = title
        self.author = author
    def get_entry(self):
        return "{0} by {1} on {}".format(self.title, self.author, self.press)

Maak een exemplaar van mijn boek eruit:

In [72]: mybook = Book('HTML','Lee')
In [75]: mybook.title
Out[75]: 'HTML'
In [76]: mybook.author
Out[76]: 'Lee'

Merk op dat ik het kenmerk ‘Self.Press’ niet heb initialiseerde, terwijl ik het in de Get_entry-methode) gebruiken. Ga verder met het typen van gegevens.

mybook.press = 'Murach'
mybook.price = 'download'

Tot nu toe kan ik alle gegevensinvoer specificeren met vars

In [77]: vars(mybook)
Out[77]: {'author': 'Lee', 'title': 'HTML',...}

I HINDYPE Veel gegevens over MyBook in de console.Wanneer probeer de Get_entry-methode, foutenrapport te bellen.

mybook.get_entry()
ValueError: cannot switch from manual field specification to automatic field numbering.

Dit alles in de interactieve modus op console. Ik koester de ingevangen gegevens, verder naar augurk mybookobject in bestand. Het is echter gebrekkig. Hoe kan het redden in de interactieve modus.
of ik moet opnieuw opnieuw opstarten.


Antwoord 1, Autoriteit 100%

return "{0} by {1} on {}".format(self.title, self.author, self.press)

Dat werkt niet. Als u posities opgeeft, moet u het door het einde doen:

return "{0} by {1} on {2}".format(self.title, self.author, self.press)

In uw geval, het beste is om Python te laten behandelen dat automatisch:

return "{} by {} on {}".format(self.title, self.author, self.press)

Antwoord 2, Autoriteit 2%

Nou, indien kan een juiste uitvoer geven in een tabelformaat als
in plaats van het gebruik van formaat voor f “”;

voor b.g

<!DOCTYPE html>
<html>
<head>
    <title><strong>Unable to handle Value Error</strong></title>
</head>
<body>
<p><ol>for name, branch,year in college:</ol>
         <ol> print(f"{name:{10}} {branch:{20}} {year:{12}} )</ol>
    <ol>name       branch               year    </ol>
    <ol>ankit      cse                         2</ol>
    <ol>vijay      ece                         4</ol>
<ol>    raj        IT                          1</ol>
</body>
</html>

Antwoord 3, Autoriteit 2%

U ziet deze fout voornamelijk omdat u lege bloemblaadjes gebruikt die zegt dat Python de standaardnummering heeft gebruikt, en later heeft u opgegeven nummers in de vervangende velden. Dus verwarring creëren met de tolk.

print ("{0} by {1} on {}".format(self.title, self.author, self.press))

Hier {} gemiddelde start met het 1e vervangingsveld en volg tot einde niet 0 zoals zoals in snijden die begint met nul.

Om deze fout te wissen, kunt u

gebruiken

print ("{0} by {1} on {2}".format(self.title, self.author, self.press))

print ("{} by {} on {}".format(self.title, self.author, self.press))


Antwoord 4

print ("{0:.1f} and the other no {0:.2f}".format(a,b)) 

Python kan niet zowel handmatige als automatische precisieafhandeling (veldnummering) in één uitvoering van de code uitvoeren. U kunt kiezen voor het opgeven van het veld Nummering voor elke variabele of laat Python het automatisch doen voor iedereen.

Other episodes