11 svar
81 visningar
Qetsiyah 4739 – Volontär digitala räknestugor
Postad: 5 sep 2020 Redigerad: 5 sep 2020

Printa lista på alla definierade funktioner

Hej, jag vill samla ihop alla mina småprogram till ett och låta personen välja. Första steget tycker jag är att printa namnet på alla funktioner jag har skrivit, hur gör jag det?

Laguna 11665
Postad: 5 sep 2020

Ligger alltså allt i samma modul då? Du kan använda funktionen 'dir' med modulen som argument.

Samma .py fil ja. Hur menar du?

Jag hittade detta, men det är nog med python 2, kan du översätta?

Laguna 11665
Postad: 5 sep 2020

Det här kan jag inte på rak arm.

Det går säkert att göra nåt bra, men till att börja med föreslår jag att du håller reda på vilka funktioner det finns för hand.

Ja, jag har bara tre små program, jag kan skriva själv. Det var lite väl ambitiöst kanske

Qetsiyah 4739 – Volontär digitala räknestugor
Postad: 5 sep 2020 Redigerad: 5 sep 2020

Tadaa

Skrev det felfritt på första försöket faktiskt.

Hur gör jag så att man kan komma tillbaka och prova flera, och skriva "exit" när de är klara?

Laguna 11665
Postad: 5 sep 2020

Lägg en till while-loop runt allting, eller modifiera den du har.

Qetsiyah 4739 – Volontär digitala räknestugor
Postad: 6 sep 2020 Redigerad: 6 sep 2020

Jag skrev

while val != "exit": 

Och sen 

if val == "exit"

print (Tack för besöket, hejdå!)

Och det verkar fungera, var det det du menade?

EDIT: näeej, nu loopar den det första valet man gjorde, och man blir aldrig tillfrågad om man vill exit eller prova ett annat program

EDIT: jag fixade det själv: kolla här:

Ser det smidigt ut?

Laguna 11665
Postad: 6 sep 2020

1) Du behöver inte testa om det är "exit" på slutet. 

2) Det kommer att kännas osmidigt om du behöver ändra prompten (frågan som användaren får). Nu står den på fyra ställen. 

Din lösning fungerar men har en del kod som gör den aningen osmidig. Laguna pekar ut de största osmidigheterna. Det som gör koden osmidig för framtida utökningar är att du dessutom behöver ändra utskrift och lägga till fler elif-satser om du lägger till fler funktioner i din pythonsamling.

Följande kod gör det möjligt att lägga till funktioner utan att göra övriga ändringar i koden. Den knepigaste delen är raderna 13-15 som samlar namn och address på alla funktioner i denna modul (__name__).

Qetsiyah 4739 – Volontär digitala räknestugor
Postad: 7 sep 2020 Redigerad: 7 sep 2020

Oj vad avancerat...

Rad 17: while vad är true? Vad ska vara true?

Ja, raderna 13-15 är avancerade och inget man vanligtvis lär sig tidigt i sin programmeringsutbildning. Resten är ganska ordinär Python.

'while True:' betyder att villkoret för att påbörja loopen är sant. Loopen ska sedan fortsätta till dess den avbryts. Den avbryts med 'break' på rad 23 om användaren skrivit exit.

Svara Avbryt
Close