Svar på vanliga frågor
-
...is still running...
När du kör program från IDLE tänk på att avbryta en gammal körning
innan du kör programmet igen. Tex går ctrl+c att använda innan en ny körning
av programmet!
-
Jag vill inte ha ny rad mellan min utskrifter.
Skriv till ett komma(,) efter print-satsen, t ex
print "här skrivs något ut",
-
"None" skrivs ut på skärmen.
En funktion utan return-sats returnerar None. Troligen har
du råkat anropa en sån funktion i en print-sats, t ex
print skriv_ut()
Lösningen är att anropa funktionen utan print (eller låta funktionen
returnera den sträng som ska skrivas ut).
-
En extra tom rad skrivs ut som jag inte vill ha!
Läser du in data från en fil? Tänk på att varje rad du läser in
innehåller ett radbrytningtecken "\n" i slutet.
Du får enklast bort detta genom att
på varje rad du läser från filen använda funktionen strip().
I stället för:
raden = filen.readline()
skriver du:
raden = filen.readline.strip()
-
En if-sats fungerar inte.
Tänk på att använda rätt datatyper.
"1" != 1 , dvs en sträng med en etta är inte samma som en heltal med en etta.
Om du läst in rader från en fil och du använder de variablerna i if-satser
kan det vara samma problem som i tomrads frågan ovan, alltså ett
"\n" sist i variableln som måste städas bort med strip
-
En nyckel som finns i en dictionary fungerar inte.
Om du läst in nycklarna från en fil
kan det vara samma problem som i tomrads frågan ovan, alltså ett
"\n" som ligger sist i nyckeln och måste städas bort med strip
-
invalid_syntax
Då är det ofta tecknet/raden innan som det är fel på.
- Kolla kolon(:) på raden innan
- Kolla så du tabbat in efter kolon(:)
- Kolla parantes
() och klamrar []
på raden/tecknet innan
- kolla tabbar, även kommentarer med
""" """ måste
tabbas rätt! Matcha med det stycket ovan som ska ha samma intabbning. Det är fel tabbat! python har rätt!
-
can't concatenate str and int
Om du skriver ut både strängar och tal i samma print-sats kan du behöva
konvertera talen till strängar:
print frukten + " kostar " + str(pris)
-
När jag läser in filen så läses inget in, men det har fungerat förut.
Öppna filen i WordPad och kolla så den innehåller något. Spara och stäng filen
igen.
-
Hur gör man formaterad utskrift?
Exempel:
print " Sko Storlek Pris"
print " %10s%8i%12.2f"%(skonamn,storlek,pris)
Här är skonamn en sträng som skrivs ut i tio positioner (%10s),
storlek ett heltal som skrivs ut i åtta positioner (%8i) och
pris ett flyttal som skrivs ut i tolv positioner med två decimaler (%12.2f).
Dokumentation finns på http://docs.python.org/lib/typesseq-strings.html
-
Jag använder sys.exit() för att avbryta programmet, men då får jag en
massa röd text i IDLE.
Lägg in en
try: ... except SystemExit:
runt ditt anrop av main så slipper du den röda texten.
-
-
|