11 svar
103 visningar
Qetsiyah 6503 – Livehjälpare
Postad: 5 sep 2020 18:32 Redigerad: 5 sep 2020 18:32

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 28531
Postad: 5 sep 2020 18:41

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

Qetsiyah 6503 – Livehjälpare
Postad: 5 sep 2020 18:42

Samma .py fil ja. Hur menar du?

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

Laguna 28531
Postad: 5 sep 2020 18:48

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.

Qetsiyah 6503 – Livehjälpare
Postad: 5 sep 2020 18:49

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

Qetsiyah 6503 – Livehjälpare
Postad: 5 sep 2020 18:57 Redigerad: 5 sep 2020 18:58

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 28531
Postad: 5 sep 2020 19:20

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

Qetsiyah 6503 – Livehjälpare
Postad: 6 sep 2020 12:52 Redigerad: 6 sep 2020 12:59

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 28531
Postad: 6 sep 2020 14:15

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. 

Lindehaven 820 – Lärare
Postad: 7 sep 2020 11:06

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 6503 – Livehjälpare
Postad: 7 sep 2020 11:28 Redigerad: 7 sep 2020 11:28

Oj vad avancerat...

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

Lindehaven 820 – Lärare
Postad: 7 sep 2020 12:14

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