3 svar
97 visningar
SvenPL 2
Postad: 24 feb 2023 14:39

Sköldpadda / Turtle

Jag försöker köra koden i första uppgiften  Programmering / Tänkande maskiner / Sköldpadda men får då felmeddelandet:

SyntaxError: multiple statements found while compiling a single statement.

Kör jag raderna en och en fungerar det däremot. Någon idé vad det kan bero på? Jag försökte också köra raderna från en fil och fick då andra felmeddelanden:

Traceback (most recent call last):
File "/Users/.../Python/turtle.py", line 1, in <module>
import turtle
File "/Users/.../Python/turtle.py", line 2, in <module>
turtle.shape('turtle')
AttributeError: partially initialized module 'turtle' has no attribute 'shape' (most likely due to a circular import)

Lindehaven 820 – Lärare
Postad: 25 feb 2023 21:06

most likely due to a circular import

Brukar vanligen inträffa om man sparat sin modul med namnet turtle.py. Byt i så fall namn på modulen.

Tegelhus 227
Postad: 25 feb 2023 22:38

För att bygga vidare lite på ovanstående svar, det du gör med första raden (import turtle) är att ladda in ett bibliotek med massa ytterligare funktioner. Grejen är dock att Python kan ladda in två olika saker med en import: Både färdigbyggda bibliotek, och filer du har skrivit själv.

 

import turtle ser att det finns en fil som heter just "turtle.py" i samma mapp som den är i, och därför kommer den att försöka ladda in sin själv (cirkulär import), istället för det färdiga biblioteket turtle som är det du egentligen du vill ha.

 

Det är därför det fungerar att byta namn på filen till något annat, som Lindehaven skrev. Då kommer import turtle inte hitta en fil med det namnet, och då går den vidare på att leta bland biblioteken den känner till istället, och där hittar den just det bibliotek du vill ha.

SvenPL 2
Postad: 25 feb 2023 23:00

Tack! Nu fungerar det som det ska. :)

Svara
Close