Uit de cursus: Grondbeginselen van programmeren: Voor gevorderden
Oplossing: Debuggen - tutorial Python
Uit de cursus: Grondbeginselen van programmeren: Voor gevorderden
Oplossing: Debuggen
(vrolijke muziek) - Ik hoop dat je plezier hebt gehad met die uitdaging. Misschien heb je vragen gehad terwijl je het deed of heb je een moment gehad waarop je niet zeker wist wat je nu moest doen. Als dat zo is, is dat volkomen normaal. Het begrijpen van en werken met programmeerconcepten vergt oefening. Sterker nog, zelfs ervaren ontwikkelaars lopen tegen fouten aan die ze niet gemakkelijk kunnen oplossen. Het uitproberen van deze uitdaging is de eerste stap in het opbouwen van die spieren. Als ik het bestand open, merk ik meteen dat ik een rode kronkel op regel twee heb, en als ik de aanwijzer daaroverheen beweeg, vertelt de linter me dat ik een ongeldige syntaxis heb, maar als ik het uitvoer, bevat de terminal een caret die de locatie in de regel aangeeft waar het probleem is gevonden, dat is het gelijkteken. En dat is genoeg om me eraan te herinneren dat ik een dubbel gelijkteken nodig heb ter vergelijking. Dus ik ga hier nog een gelijkteken aan toevoegen. Ik ga dat opslaan, en nu is mijn syntaxisfout verdwenen. Die rode kronkel is er niet meer. Maar nu heb ik een rode kronkel op regel negen, en als ik daar met de muis overheen beweeg, is de linterfout een ongedefinieerde variabele. Als ik nu omhoog kijk naar het begin van mijn code, is de naam van de functie die ik aanroep plant_recommendation, niet plant_rec. Dus ik kan dat oplossen, zelfs met behulp van automatische voltooiing. Dus dat is mijn runtime-fout opgelost. Ik sla op en de IDE markeert niets anders. Dus ik voer mijn code uit in de terminal. Ik heb drie testgevallen in mijn dossier, maar er worden slechts twee waarden naar de terminal geprint, aloë en pothos. Het derde geval, met de waarde hoog, zou de tweede elif-instructie moeten activeren. Dus ik zal die verklaring zorgvuldiger bekijken, en ik merkte dat ik medium herhaalde als de waarde om te controleren, in plaats van hoog. Dit is een logische fout. Dus in die tweede elif-instructie vervang ik medium door hoog en sla ik mijn code op. Ik maak mijn terminal leeg en ik ga nog een keer rennen. En nu zie ik alle drie de mogelijke resultaten afgedrukt in de volgorde die ik verwacht. Het kan zijn dat je alle bugs meteen hebt gevonden of dat je er even over hebt gedaan of ze niet allemaal hebt gevonden. Dat is niet erg. Foutopsporing kost werk en bugs zijn niet altijd duidelijk. Gelukkig is debuggen een vaardigheid waar je beter in wordt naarmate je het vaker doet. En er is nooit een tekort aan bugs als het gaat om programmeren. Benader debuggen met nieuwsgierigheid en een gevoel voor avontuur, en je zult je programmeervaardigheden blijven verbeteren.