Din egen chattbot - Marvin - steg 2

By . Latest revision .

Programmering och problemlösning i Python. Strukturera koden i en egen fil och lär Marvin ett spel samt att förstå flytande text.

#Förkunskaper

Du kan grunderna i Python och stränghantering och du har byggt första delen av Marvin.

#Krav

  1. Kopiera din Marvin från föregående kursmoment och utgå från den koden.
# Flytta till kurskatalogen
cd me
cp -ri kmom02/marvin1/marvin.py kmom03/marvin2/
cd kmom03/marvin2
  1. Skriv om koden så att menyn och varje menyval finns i en egen funktion.
  1. Menyval 8: Kasta om bokstäver. Marvin ska be dig skriva in ett ord som sedan slumpmässigt kastas om. Det omkastade ordet ska sedan skrivas ut.

  2. Menyval 9: Anagram. Skapa ett val där marvin ber om två strängar och kollar om de är anagram. Ett anagram är när man kan få fram samma sträng genom att kasta om bokstäverna i den andra. Tips, sorted() och lower(). Exempel:

input: "Anagram", "Magarna"     output: "Match"
input: "Paris", "sirap"         output: "Match"
input: "Nope", "note"           output: "No Match"
  1. Menyval 10: Akronym skapare. Marvin ska be om en sträng och skapa en akronym för den genom att plocka ut alla stora bokstäver och sätta ihop till en ny sträng. Tips, isupper(). Exempel:
input: "BRöderna Ivarsson Osby"             output: "BRIO"
input: "Ingvar Kamprad Elmtaryd Agunnaryd"  output: "IKEA"
  1. Menyval 11: Sträng maskering. Skapa ett nytt val där Marvin ber om en sträng och ersätter alla utom de fyra sista karaktärerna med “#”. Exempel:
input: "4556364607935616"     output: "############5616"
input: "64607935616"          output: "#######5616"
  1. Validera och publicera Marvin genom att göra följande kommandon i kurskatalogen i terminalen.
# Flytta till kurskatalogen
dbwebb validate marvin2
dbwebb publish marvin2

Rätta eventuella fel som dyker upp och publicera igen. När det ser grönt ut så är du klar.

#Extrauppgift

  • Menyval B1: Poäng till betyg, Marvin ska fråga efter maxpoäng samt dina poäng och sedan ska Marvin skriva ut vilket betyg dina poäng motsvarade. Kika på övning 3.3 i boken Python for Informatics.

  • Menyval B2: Gör så Marvin kan ta emot fyra strängar, den första strängen ska jämföras med de andra tre. Kolla om den första strängen börjar med den andra, innehåller den tredje och slutar med den sista. Tips, startswith(), endswith() Exempel:

input: "anagram", "ana", "agr", "am"        output: "Match"
input: "isogram", "is", "gra", "m"          output: "Match"
input: "Palindrom", "par", "ind", "rom"     output: "No match"

#Tips från coachen

Felsöka med debuggern och 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

  • 2018-06-13: (H, aar) Bytt ut vissa menyval och definierat vilka siffror valen är.
  • 2017-06-13: (G, efo) Uppdaterade marvin menyval, la till funktioner och modul.
  • 2015-08-25: (F, mos) Uppgraderade till dbwebb v2.
  • 2015-01-29: (E, mos) Sökväg för cd-kommandot.
  • 2014-10-24: (D, mos/sylvanas) Mindre omformulering krav 2 och krav 3.
  • 2014-08-27: (C, mos) Genomgången och testad.
  • 2014-08-03: (B, sylvanas) Uppdaterad med fler övningar.
  • 2014-07-03: (A, mos) Första utgåvan i samband med kursen python.

Document source.

Category: python.