Namn Stil Dokumentation Objekt-orienterad programmering Dept. of Computer Science Umeå University jem@cs.umu.se OBS OBS OBS OBS OBS OBS OBS OBS Detta är inget gnäll på någon speciell utan jag ser detta hos er alla loop = False while loop == False: f=raw_input('vad är ditt användarnamn?') s=raw_input('och ditt lösenord?') g = open('info.txt') for x in g.readlines(): b=x.strip().split(':') v1 = b[0].split('=') v2 = b[1].split('=') v3 = b[2].split('=') if f==v2[1] and s == v3[1] : print('välkommen ') + v1[1] loop = True if loop==false: print('stopp') g.close()
quitprogram = False while not quitprogram: username=raw_input('vad är ditt användarnamn?') password=raw_input('och ditt lösenord?') passwordfile = open('info.txt') for currentpassword in passwordfile.readlines(): parts=currentpassword.strip().split(':') dbuserinfo = parts[0].split('=') dbusername = parts[1].split('=') dbpassword = parts[2].split('=') if username==dbusername[1] and password == dbpassword[1] : print('välkommen ') + dbuserinfo[1] quitprogram = True if not quitprogram: print('stopp') passwordfile.close() a = raw_input('enter your username: ') b = raw_input('and your password: ') anv=open('anvandare.txt') ok=false while rad!= '': d=rad.strip().split(':') e=[] for item in d: parts=item.split('=') e.append(parts[0]) e.append(parts[1]) if a == e[3] and b == e[5]: ok=true print 'Welcome ' + e[1] anv.close() if ok==false: print "I'm sorry, you're not trusted." username = raw_input('enter your username: ') password = raw_input('and your password: ') anv=open('anvandare.txt') ok=false while rad!= '': lineparts=rad.strip().split(':') userinfo=[] for item in lineparts: parts=item.split('=') userinfo.append(parts[0]) userinfo.append(parts[1]) if username == userinfo[3] and username == userinfo[5]: ok=true print 'Welcome ' + userinfo[1] anv.close() if not ok: print "I'm sorry, you're not trusted."
Varför??? Kod är en notation för att beskriva en lösning Den ska läsas, det ska med andra ord var lätt att läsa koden och förstå vad som händer Påverkar: Val av variabelnamn Val av funktionsnamn Val av klassnamn Designen av program Layout Dokumentation Vad gör programmet? Till för att underlätta förståelsen av programmet Dokumentera lagomt - inte för mycket, inte för lite Kommentarer och referensdokumentation Förklara en kodsnutt Förklara hur man använder något
import random dna = 'ACGTRYKMSWBDHVN' dnm = len(dna)-1 def makeone( name ): seq = name + ':' for nr in range(40): print makeone(name) import random dna = 'ACGTRYKMSWBDHVN' # Sätter dna till ACGTRYKMSWBDHVN dnm = len(dna)-1 # Sätter dnm till längden av dna - 1 def makeone( name ): # Definera en funktion som genererar # dna för en person, tar namnet på # personen som parameter seq = name + ':' # Definerar seq som namn + : for nr in range(40): # Kör loopen 40 gånger # Sätt nya seq till den gamla seq plus # ett slumpmässigt tecken ur dna # Returnera seq # Loopa igenom alla namn i listan print makeone(name) # Anropa makeone med namn som parameter # och skriv ut resultatet import random dna = 'ACGTRYKMSWBDHVN' dnm = len(dna)-1 def makeone( name ): ''' Generera en DNA sekvens för en person. Ange namnet som parameter. Resultatet är en sträng med följande utseende: kajsa:anvmdsbrcgmnkadrtgakkdvrdkcabdrrcdscvbwv ''' seq = name + ':' # Plocka ut ett slumpartat tecken ur de tecken som # defineras ovan for nr in range(40): # Gå igenom alla seriefigurna och skriv ut en dnasekvens # för varje print makeone(name)
Klasser Försöker modellera något Värden + beteende (i undantagsfall bara värden) Uppgift Gör om lab 1 men använd klasser i stället