Forum huvudsida -> Programmering -> forts. pythonproblem
Sidor: 1
lalindb | 23:34 - 17:e April 2007 | Post #1 | |
Medlem Inlägg: 6 Skicka PM |
Jag kom just på att jag kan skriva tex 2007-03-17: istället för 17 mars:. Detta gör att jag får en sorterad lista om jag använder mig av sort(). Men nu vill jag ta tex den första nyckeln och dess tillhörande value och få det som något slags default värde eller aktuell sida i stil med: Aktuell sida: 2007-05-03 : ...ka på semester... 1) Lägga till sida 2) Ta bort en sida 3) Sök sida 4) Visa alla sidor 5) Bläddra framåt 6) Avsluta och spara Väljer jag sedan 5) ska aktuell sida bli tex: Aktuell sida: 2007-05-04: Ankommer till resorten kl.10.00 1) Lägga till sida 2) Ta bort en sida 3) Sök sida 4) Visa alla sidor 5) Bläddra framåt 6) Avsluta och spara Här kommer koden... //Lars #inläsning av anteckningar filename = "filfax.txt" def readFilofax(filofax): import os if os.path.exists(filename): store = open(filename,'r') for line in store: name = line.rstrip() entry = store.next().rstrip() filofax[name] = entry store.close() #spara filofaxanteckningarna def saveFilofax(filofax): store = open(filename, 'w') for name,entry in filofax.items(): store.write(name + '\n') store.write(entry + '\n') store.close() #välja alternativ def getChoice(menu): print menu choice = int( raw_input("Välj alternativ(1-6): ") ) return choice #sätta in en ny sida def addTodo(filofax): name = raw_input("Ange datum och månad: ") entry = raw_input("Skriv minnesanteckning: ") filofax[name] = entry #ta bort en sida def removeTodo(filofax): name = raw_input("Ange datum och månad: ") del(filofax[name]) #sök anteckning en viss dag def findTodo(filofax): name = raw_input("Ange datum och månad: ") if name in filofax: print name, filofax[name] else: print "Tyvärr, angivet datum saknas: ", name #visa alla anteckningar def show_all_Todo(filofax): for name,entry in filofax.items(): print name +":",entry #store = open(filename,'r') #for line in store: #print line #bläddra framåt def step_fwd_Todo(filofax): L1=filofax.keys() L1.sort() print "the keys are:" print L1, "\n" print "Aktuell dag: ", L1[1], ": ", filofax[L1[1]] def main(): theMenu = ''' 1) Lägga till sida 2) Ta bort en sida 3) Sök sida 4) Visa alla sidor 5) Bläddra framåt 6) Avsluta och spara ''' theFilofax = {} readFilofax(theFilofax) choice = getChoice(theMenu) while choice != 6: if choice == 1: addTodo(theFilofax) elif choice == 2: removeTodo(theFilofax) elif choice == 3: findTodo(theFilofax) elif choice == 4: show_all_Todo(theFilofax) elif choice == 5: step_fwd_Todo(theFilofax) else: print "Invalid choice, try again" choice = getChoice(theMenu) saveFilofax(theFilofax) #if statement är sant om programmet körs direkt och falskt om filen är importerad som en modul. if __name__ == "__main__": main() Senast redigerad 11:34 - 18:e April 2007 |
Independence | 23:41 - 17:e April 2007 | Post #2 | |
Administratör Inlägg: 1800 Skicka PM |
Hm, finns det verkligen en sort() till dictionarys? Kanske är nytt i 2.5 iofs. Angående själva problemet kan du ju helt enkelt spara värdet av nyckeln i en variabel som heter typ current eller något? ------------------------- Vi är riddarna som säger fiskbulle! Senast redigerad 23:41 - 17:e April 2007 |
sdac | 23:43 - 17:e April 2007 | Post #3 | |
Medlem Inlägg: 235 Skicka PM |
Ett tips: Skapa inte en ny tråd endast för att fortsätta på en tidigare tråd. Skriv istället ett nytt inlägg i den förra eller använd ändra-funktionen. Ett till tips: Visa källkod direkt i forumet och peka ut vart problemet ligger, tror ingen är villig att spendera massa tid på att utbyta emailadresser och sitta och vänta på mail endast för att kunna hjälpa en främmande person. Tyvärr kodar jag inte python och kan inte hjälpa dig, men jag vet att många andra här håller på en hel del med python, så jag är ganska säker på att du enkelt kan få hjälp om du följer mina tips ovan. Lycka till. |
ozamosi | 14:18 - 18:e April 2007 | Post #4 | |
Administratör Inlägg: 1129 Skicka PM |
Fler tips:
------------------------- Ljusblå |
Independence | 16:32 - 18:e April 2007 | Post #5 | |
Administratör Inlägg: 1800 Skicka PM |
Vad är problemet nu förresten? Gick det inte att spara nyckeln i en variablel, och sedan använda det för att ta fram det värdet man är på för tillfället? ------------------------- Vi är riddarna som säger fiskbulle! |
lalindb | 02:42 - 19:e April 2007 | Post #6 | |
Medlem Inlägg: 6 Skicka PM |
Citat av ozamosi: Fler tips:
Tack för feedback! Jag har massor att lära, det är uppenbart. Ha tålamod! Jag vet inte hur jag lägger till en..."ny post". Eller är det precis vad jag gjort nu när jag svarat på ditt meddelande? Jag har mest hittat länkar som citera och PM alt. skapa ny tråd... |
Independence | 02:46 - 19:e April 2007 | Post #7 | |
Administratör Inlägg: 1800 Skicka PM |
Citat av lalindb: ... Tack för feedback! Jag har massor att lära, det är uppenbart. Ha tålamod! Jag vet inte hur jag lägger till en..."ny post". Eller är det precis vad jag gjort nu när jag svarat på ditt meddelande? Jag har mest hittat länkar som citera och PM alt. skapa ny tråd... Längst ner på sidan finns det ett fält (snabbsvar) för att svara på inlägg. Annars funkar ju citat-saken bra också, eller länkan till svara-sidan. ------------------------- Vi är riddarna som säger fiskbulle! |
lalindb | 03:00 - 19:e April 2007 | Post #8 | |
Medlem Inlägg: 6 Skicka PM |
Härligt! Då var jag inte helt fel ute den här gången... Har du något konkret tips på hur jag ska skriva rent praktiskt för att få till det enligt dina tankegångar? |
lalindb | 19:28 - 19:e April 2007 | Post #9 | |
Medlem Inlägg: 6 Skicka PM |
Citat av ozamosi: Fler tips:
Här kommer ett försök med taggar, ser inga färger i det här läget men det kanske ändrar sig när jag postar svaret!? Jädrans vad tjatig jag börjar känna mig nu kring det här jädrans problemet jag har. Alltså hur ska jag skriva rent praktiskt vad gäller en ny variabel i vilken tex första nyckeln ur den sorterade listan skall läggas och sedan skrivas ut så fort man startar programmet. Om jag sedan väljer alternativ 5) i menyn så ska jag kunna stega framåt till nästa nyckel i listan och printa ut denna som aktuell sida i min filofax. Sedan måste jag få till en funktion för att kunna bläddra bakåt också på samma sätt. //Lars
Senast redigerad 19:33 - 19:e April 2007 |
ozamosi | 20:14 - 19:e April 2007 | Post #10 | |
Administratör Inlägg: 1129 Skicka PM |
Det saknas fortfarande mellanslag Anyway... Jag skulle nästan föreslå att du slutar använda en dictionary, eftersom den saknar uppfattning om framåt och bakåt. Dessutom skulle det väl inte vara orimligt att tro att man kan vilja ha två todo-poster på samma dag? Skulle du försöka med det nu borde den andra posten skriva över den första. Skulle du använda en lista innehållande andra listor, vilket du ju omvandlar din dictionary till de flesta gångerna du använder datan, skulle du till exempel kunna skicka med ett index till listan mellan de flesta funktionerna (eller göra indexet till en global variabel) som är ett heltal - den posten som för tillfället är aktiv har alltså på den positionen i listan. Dock får man då inte glömma bort att ändra på indexet när man lägger till todo-poster till exempel. Eftersom du omvandlar dictionaryn till en lista vid användning går det att ha ett index utan att göra sig av med dictionaryn om man vill, men det låter läskigt - till exempel då man lägger till nya poster blir det komplicerat att hålla koll på sitt index. Min inre lisphacker skriker åt mig att länkade listor skulle vara användbara här, men eftersom det enda som skrämmer mig mer än lispkod är min inre lisphacker vågar jag inte lista ut hur det skulle göras snyggt. ------------------------- Ljusblå |
Sidor: 1
Forum huvudsida -> Programmering -> forts. pythonproblem
Du får inte posta i den här tråden | Till toppen
Datum
2024-05-19 16:12
Vecka: 20
Besökare
Inloggade: 0
Gäster: 605
Medlemmar
Medlemmar: 53576
Forum
Senaste inlägget: HAHA MÄNNISKAN LEVER ÄN (13:45 - 18:e Januari 2019, av Hetzz)
Wiki
Senaste ändringen:
3D (rev: 1, tid: 09:40 - 13:e November 2015)
Chatt
#blinkenlights @ Libera.Chat
Gratis shellkonton för IRC, webbsidor mm.