Din egen chattbot - Marvin - steg 3
Programmering och problemlösning i Python. Lär Marvin att prata lite mer slumpmässigt via listor med standardsvar.
#Förkunskaper
Du kan grunderna i Python och stränghantering och du har byggt andra delen av Marvin.
#Introduktion
Ett steg vidare från våran Marvin med meny är att lära honom kommandon utöver de menyval som finns. Det innebär att lära Marvin att svara på löpande text istället för siffror.
Marvin skall kunna svara på frågor som dessa.
Marvin, ge mig ett citat! Dagens citat, tack? Citat - för bövelen, ge mig ett!
Marvin skall alltså kunna ge ett citat, oavsett hur man ber om det.
Det enkla sättet att göra det är att kolla om texten som skrivs till Marvin innehåller ett visst ord, så som “citat” i detta fallet. Baserat på det skriver sedan Marvin ut ett svar, som exempelvis kan slumpas från en lista. Du kan kika lite på hur en liknande lösning hanteras av IRC-Marvin på github.
Vi kommer att lära Marvin att ge oss ett citat, där citaten är lagrade på fil.
Se hur det kan se ut när uppgiften är klar:
#Krav
Kopiera din Marvin från föregående kursmoment och utgå från den koden. Kopiera även filen med citat.
# Ställ dig i kurskatalogen
cd me
cp -ri kmom03/marvin2/*.py kmom04/marvin3/
cp -i ../example/marvin/quotes_lgtg.txt kmom04/marvin3/quotes.txt
cd kmom04/marvin3
Lär Marvin kommandot “citat”. Presentera ett slumpmässigt citat från boken “Liftarens Guide till Galaxen”, som Marvin har tillgång till i filen
quotes.txt
.Kommandot ska skrivas direkt till Marvin. Det ska inte ligga bakom ett menyval som tidigare.
Validera Marvin genom att göra följande kommandon i kurskatalogen i terminalen.
# Ställ dig i kurskatalogen
dbwebb validate marvin3
Rätta eventuella fel som dyker upp och validera igen. När det ser grönt ut så är du klar.
#Extrauppgift
- Lär Marvin svara på meningar som innehåller orden “hej” och “lunch”. Svaren skall slumpas fram och kombineras från de standardsvar som IRC-Marvin använder på github.
#Tips från coachen
Lär dig felsöka med debuggern, använd den när du får problem. Komplettera med utskrifter av print()
.
Validera ofta. Så slipper du en massa valideringsfel i slutet av övningen.
Lycka till och hojta till i forumet om du behöver hjälp!
#Revision history
- 2017-06-14: (H, lew) Uppdaterade med en asciinema och ett krav.
- 2016-02-29: (G, mos) Uppdaterade länk till IRC-marvin.
- 2016-01-29: (F, mos) Uppdaterade länk till IRC-marvin.
- 2015-08-25: (E, mos) Uppgraderade till dbwebb v2.
- 2015-02-02: (D, mos) Ändrar cd-kommendot så det flyttar till rätt katalog.
- 2014-08-27: (C, mos) Ändrar hur uppgiften kopieras från start och skrev om lite text.
- 2014-08-16: (B, Sylvanas) Förtydligande av extrauppgift med länk till github.
- 2014-07-03: (A, mos) Första utgåvan i samband med kursen python.