3 svar
229 visningar
Bellasofie är nöjd med hjälpen
Bellasofie 57 – Fd. Medlem
Postad: 30 jan 2020 18:57

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!

postitlapp 66
Postad: 30 jan 2020 19:49

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.

Bellasofie 57 – Fd. Medlem
Postad: 30 jan 2020 21:27
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? 

Lindehaven 820 – Lärare
Postad: 31 jan 2020 16:03

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_language

def make_bandit_dictionary(animals):
    ... kod som du redan skrivit ...
    return new_dict

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

Svara Avbryt
Close