Nieuws:

We zijn er weer.

Na lange tijd van afwezigheid zijn we er weer  :laugh:
We hebben alle wachtwoorden gereset, je oude wachtwoord werkt niet meer.Je moet via het "wachtwoord vergeten"-linkje je wachtwoord resetten. Je krijgt hiervoor een mailtje op het adres dat je bij ons geregistreerd hebt.

De komende tijd zijn we nog druk bezig om de rest van de site op te bouwen, dus het kan zijn dat sommige onderdelen (tijdelijk) niet werken.

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: python programa niet afsluiten  (gelezen 2125 keer)

Fallot

  • Gast
python programa niet afsluiten
« Gepost op: 2009/05/28, 22:45:03 »
hoe kan ik er voor zorgen dat een python script steeds opnieuw begint
en pas afsluit bij de juiste menu keuze?

Offline Nunslaughter

  • Lid
    • timovwb
  • Steunpunt: Nee
Re: python programa niet afsluiten
« Reactie #1 Gepost op: 2009/05/28, 22:54:20 »
Een while-loop kan werken.

Fallot

  • Gast
Re: python programa niet afsluiten
« Reactie #2 Gepost op: 2009/05/29, 11:27:29 »
ja dat probeer ik.
maar de while loop zorgt dat mijn programma niet goed meer loopt
hier mijn code:

#!/usr/bin/python

def info():
print"hello"
return

run = 1

while run:
choice = int(raw_input(' Make a choice: '))

if choice == 1:
info()
elif choice == 2:
print" bye"


de while loop zorgt er voor dat mijn prog vast blijft zitten op deze lijn:
choice = int(raw_input(' Make a choice: '))
maar hij moet zodra het gehele programma doorlopen is opnieuw beginnen.

Offline Nunslaughter

  • Lid
    • timovwb
  • Steunpunt: Nee
Re: python programa niet afsluiten
« Reactie #3 Gepost op: 2009/05/29, 11:33:11 »
Is normaal dat hij daar blijft hangen, want ge gaat nooit uit de while-lus (run is altijd True).

Dit zou moeten werken:
#!/usr/bin/env python

def info():
    print"hello"

while True:
    choice = int(raw_input("Make a choice (1 or 2): "))

    if choice == 1:
        info()
    elif choice == 2:
        print "bye"
        break

Fallot

  • Gast
Re: python programa niet afsluiten
« Reactie #4 Gepost op: 2009/05/29, 12:09:07 »
dus de while lus eindigt bij de eerste if lus.
kan ik dat ook veranderen?

Offline Nunslaughter

  • Lid
    • timovwb
  • Steunpunt: Nee
Re: python programa niet afsluiten
« Reactie #5 Gepost op: 2009/05/29, 12:26:36 »
In uw voorbeeld wel.
Gewoon de if in de lus zetten zal het oplossen (zie mijn voorbeeld).

Offline Ronnie

  • Artworkteam
    • ronnie.vd.c
  • Steunpunt: Nee
Re: python programa niet afsluiten
« Reactie #6 Gepost op: 2009/05/29, 18:25:10 »
Even een offtopic opmerking.

Ik zie dat je een tab met 8 spaties gebruikt. Volgende de python richtlijnen is 4 spaties aangeraden. Zie hier de richtlijnen voro het programmeren in python
http://www.python.org/dev/peps/pep-0008/
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Documentatie Terminal

Offline Nunslaughter

  • Lid
    • timovwb
  • Steunpunt: Nee
Re: python programa niet afsluiten
« Reactie #7 Gepost op: 2009/05/29, 18:31:22 »
Het beste is gewoon 4 spaties gebruiken in plaats van tab. Heb het al vaker meegemaakt dat zo tabs de code kan verknoeien met copy/pasten. En laat nu net inspringen héél belangrijk zijn in Python.
In Gedit kunt ge bijvoorbeeld instellen dat las ge op tab drukt, dat hij 4 spaties neerzet ipv een tab. Heel handig.

Offline JanClaeys

  • Lid
  • Steunpunt: Nee
Re: python programa niet afsluiten
« Reactie #8 Gepost op: 2009/06/11, 20:57:39 »
In Gedit kunt ge bijvoorbeeld instellen dat las ge op tab drukt, dat hij 4 spaties neerzet ipv een tab. Heel handig.
Da's helemaal niet handig, want dan toont hij tabs in de code ook alsof die 4 spaties breed zouden zijn (terwijl de python parser die als het equivalent van 8 spaties interpreteert).  Dat lijkt misschien geen probleem als je enkel je eigen code bekijkt, maar vroeg of laat bekijk je natuurlijk ook code van anderen...
Jan Claeys
Ubuntu-nl IRC team - Ubuntu-be LoCoTeam Contact

Offline Nunslaughter

  • Lid
    • timovwb
  • Steunpunt: Nee
Re: python programa niet afsluiten
« Reactie #9 Gepost op: 2009/06/11, 21:32:22 »
Dat lijkt misschien geen probleem als je enkel je eigen code bekijkt, maar vroeg of laat bekijk je natuurlijk ook code van anderen...

Daarom is het natuurlijk handig als iedereen dezelfde richtlijnen zou volgen :).
http://www.python.org/dev/peps/pep-0008/


Nuja, dat is nog geen probleem zolang ge zo code alleen bekijkt. Als ge hem dan zelf gaat aanpassen, dan is het natuurlijk wel even kijken wat de originele schrijver heeft gebruikt.

Offline JanClaeys

  • Lid
  • Steunpunt: Nee
Re: python programa niet afsluiten
« Reactie #10 Gepost op: 2009/06/13, 01:55:54 »
De richtlijnen van PEP-8 zijn:
  • tab-teken = 8 spaties
  • standaard-indentatie = 4 spaties

Resultaat: Gedit is eigenlijk niet echt bruikbaar als Python-editor...  :-(
Jan Claeys
Ubuntu-nl IRC team - Ubuntu-be LoCoTeam Contact

Offline Ronnie

  • Artworkteam
    • ronnie.vd.c
  • Steunpunt: Nee
Re: python programa niet afsluiten
« Reactie #11 Gepost op: 2009/06/13, 13:54:39 »
Standaard niet nee, je kunt bij Gedit wel als volgt instellen:
Bewerken -> Voorkeuren -> Tabblad Editor -> Bij tabgrootte stel je 4 in en je vinkt spaties invoegen ipv tabs aan

Maar toch blijft Eric mijn favoriete Python IDE
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Documentatie Terminal

Offline JanClaeys

  • Lid
  • Steunpunt: Nee
Re: python programa niet afsluiten
« Reactie #12 Gepost op: 2009/06/13, 19:44:30 »
Ronnie, zoals ik in m'n eerdere bericht schreef is dat geen oplossing...
Jan Claeys
Ubuntu-nl IRC team - Ubuntu-be LoCoTeam Contact