3 svar
49 visningar
Bellasofie är nöjd med hjälpen!
Bellasofie 51
Postad: 30 jan 2020

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 70
Postad: 30 jan 2020

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 51
Postad: 30 jan 2020
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_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