Svar på vanliga frågor om Labb 4
-
Vi får problem med åäö när vi byter ut en bokstav i taget. Här är ett exempel:
#-*- coding: utf-8 -*-
ettOrd = 'f' + 'ö' + 'n'
print ettOrd
print ettOrd[0]
print ettOrd[1]
print ettOrd[2]
Det verkar vara en teckentolkningsbugg i Python när man plockar ut enskilda tecken ur en sträng! Konvertera strängen
till Unicode (med decode) först, så går det bättre.
#-*- coding: utf-8 -*-
ettOrd = ('f' + 'ö' + 'n').decode('utf-8')
print ettOrd
print ettOrd[0]
print ettOrd[1]
print ettOrd[2]
print ettOrd[0]+ettOrd[1]+ettOrd[2])
-
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.
-
Hur byter man ut en bokstav i taget?
En sträng går inte att ändra på, så ordet[0] = bokstav
fungerar inte. Istället kan man skapa en ny sträng genom att konkatenera
delarna:
ordet = bokstav + ordet[1:3]
-
Jag har gjort Första versionen av labb 4 och
mitt program skriver ut sjutton söner. Men "gud" finns inte med
bland dom. Vad har jag gjort för fel?
I första versionen skriver du bara ut den första nivån i problemträdet,
alltså alla olika sätt att byta ut en bokstav i ordet "fan". Eftersom
"fan" och "gud" inte har några gemensamma bokstäver räcker det inte
att byta ut en bokstav, därför finns inte "gud" med på första nivån
i problemträdet.
-
Ska while-slingan i Andra versionen av programmet finnas med
både i i huvudprogrammet och i
makechildren ?
Nej, bara i huvudprogrammet.
-
Måste man ändra Queue-klassen när man gör Tredje versionen av programmet?
Nej, man ska inte ändra Queue-klassen. Den kan ju ta emot
vilken sorts data som helst, och här ska man stoppa in noder istället
för bara ord.
-
I
makesons(ordet) vill jag sätta parent-pekaren
till föräldranoden, men det går inte eftersom jag bara får
in strängen "ordet" som parameter.
som
När du har kommit så här långt är det ju noder du plockar ut ur
kön.
Skicka med hela noden som parameter till makesons
istället för bara ordet.
-
Jag har skrivit "from Queue import Queue" för att hämta in
min kö från labb2, men det verkar inte som om den hittar
"isEmpty()"? Metoderna put() och get() fungerar som dom ska.
Obs! Jag kör på min egen bärbara dator.
På din egen dator (t ex i Windows XP) kan det vara så att
Python tittar i den fördefinierade modulen Queue
istället för att titta i filen Queue.py som du har skrivit.
Byt namn på filen till queue.py (eller något annat) så
ordnar det sig.
-
Plats för ny fråga:
Svar:
|