bild
Skolan för
elektroteknik
och datavetenskap

Svar på vanliga frågor om Labb 4

  1. 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])
    



  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.


  3. 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]


  4. 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.


  5. Ska while-slingan i Andra versionen av programmet finnas med både i i huvudprogrammet och i makechildren?
    Nej, bara i huvudprogrammet.


  6. 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.


  7. 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.


  8. 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.


  9. Plats för ny fråga:
    Svar:


Copyright © Sidansvarig: Linda Kann <linda@nada.kth.se>
Uppdaterad 2013-01-02