Sida 1 av 1

Vill göra en start meny i Python

Postat: 13 okt 2007, 11:01
av ZerQ
Hej

Jag sitter och gör ett litet program men skulle vilja ha en meny där jag kan välja mellan 3 olika saker.
1. Läsa in en text
2. Skriv ut texten som senast vart inläst
3. Avsluta programmet

Funktionen läsa in en text skall kunna gå att starta igen genom att välja 1 och trycka enter, likaså val nummer 2 och val 3 skall enkelt avsluta programmet bara.

Jag kommer inte på hur jag skall göra detta, finns det någon som kan hjälpa mig i rätt riktning  ;)

SV: Vill göra en start meny i Python

Postat: 13 okt 2007, 15:54
av upnorth
Är väldigt ny i python, men det här borde fungera ;D

Kod: Markera allt

run = true
def main():
   while run:
      print "ZerQ's awsome texthandler!"
      print " "
      print "Menue:"
      print "1. Enter text"
      print "2. Print newest entered text"
      print "3. Quit"
      print " "
      choice = input("Pick SOMETHING FFS: ")
      if choice ==1:
         enterNew()
      else if choice ==2:
         printEntry()
      else if choice ==3:
         run = false
      else:
         print "Don't fuck around!"
Här finns en del läsvärt: http://www.sthurlow.com/python/
Vår kurslitteratur som PDF: http://www.greenteapress.com/thinkpython/thinkCSpy.pdf

Dokumentation på python.org: http://www.python.org/doc/

SV: Vill göra en start meny i Python

Postat: 13 okt 2007, 16:02
av Smygis
Grafiskt? Vilka widgets?
Text? Curses? Hur ser det ut nu?

Jag gissar på text.


#!/usr/bin/env python
# -*- coding: UTF-8 -*-

def readText():
   pass

def printLast():
   pass

def exitApp():
   exit()

def menu():
   meny = {"1": readText, "2": printLast, "3": exitApp}
   for i in ((1, "Läs in text"), (2, "Skriv ut förra"), (3, "Avsluta")):
       print "%i: %s" % i
   val = raw_input("Ditt val: ")
   meny[val]()
   
menu()


Typ något sånt går att göra.

SV: Vill göra en start meny i Python

Postat: 13 okt 2007, 16:05
av upnorth
Smygis skrev: Grafiskt? Vilka widgets?
Text? Curses? Hur ser det ut nu?

Jag gissar på text.


#!/usr/bin/env python
# -*- coding: UTF-8 -*-

def readText():
    print "hej"

def printLast():
    print "Last"

def exitApp():
    exit()

def menu():
    meny = {"1": readText, "2": printLast, "3": exitApp}
    for i in ((1, "Läs in text"), (2, "Skriv ut förra"), (3, "Avsluta")):
        print "%i: %s" % i
    val = raw_input("Ditt val: ")
    meny[val]()
   
menu()


Typ något sånt går att göra.
FAN vad mycket smidigare allt verkar vara i Python jämfört med C++ :P :D

SV: Vill göra en start meny i Python

Postat: 13 okt 2007, 16:23
av Smygis
Nu med felhantering:


#!/usr/bin/python
# -*- coding: UTF-8 -*-

def readText():
    pass

def printLast():
    pass

def exitApp():
    exit()

def menu():
    meny = {"1": readText, "2": printLast, "3": exitApp}
    while True:
        for i in ((1, "Läs in text"), (2, "Skriv ut förra"), (3, "Avsluta")):
            print "%i: %s" % i
        val = raw_input("Ditt val: ")
        try:
            meny[val]()
        except KeyError:
            print "Dåligt val."

menu()


Några saker upnorth:
True och False. inte true och false.
Undvik att använda input annat än om du absolut är säker på om det är den du vill använda, samt har bra felhantering. använd raw_input och bahandla den så det blit det du vill. Tex int(raw_input()). Det är lattare att hantera om något skulle gå galet.
Läs PEP8.

SV: Vill göra en start meny i Python

Postat: 14 okt 2007, 09:15
av ZerQ
Ni är bara för underbara, suberba svar och mycket snabbt också kanon  ;D

Jo det är en textbaserad utan widgets, dom kommer senare när jag lär mig mera :)

/ZerQ