funktioner + dictionary
Hej! Skrev för några timmar sedan om en uppgift som jag har löst nu, men följande uppgift baseras på den och jag får det inte att fungera. Jag antar att det är för att min första funktion inte har en parameter i sig, vilket den andra funktionen har.
För första uppgiften ser beskrivningen ut så här, och min kod fungerar fint för den uppgiften.
Men nästa uppgift ser ut på detta sätt, och koden är inte helt som den borde...
varpå felmeddelandet blir detta
Vill bara förstå hur koden bör skrivas om för att den ska fungera ordentligt!
Tanken är att återanvända funktionen bandit_language(). För tillfället tar du in sentence från användaren direkt, ta in den som ett argument istället.
postitlapp skrev:Tanken är att återanvända funktionen bandit_language(). För tillfället tar du in sentence från användaren direkt, ta in den som ett argument istället.
Hur menar du att jag ska ta in den som ett argument istället? Går det att göra det men ändå få det som en input?
Om du skriver funktionerna med argument, istället för att de använder funktionen input, så kan de användas av ett separat huvudprogram, GUI eller testprogram. Då kan huvudprogrammet anropa funktionerna, ungefär så här:
def bandit_language(sentence):
... kod utan anrop till input() ...
return bandit_languagedef make_bandit_dictionary(animals):
... kod som du redan skrivit ...
return new_dictsentence = input("Skriv en mening: ")
sentence = sentence.lower()
print(bandit_language(sentence))
animals = { ...din dictionary med djur... }
print(make_bandit_dictionary(animals))
Använd argument istället för att anropa input och print i funktioner. Samla anrop till input och print någon annanstans - i en egen funktion eller i ett "huvudprogram". Rent generellt är detta ett bättre sätt att programmera eftersom det förenklar test och återanvändning av funktioner.