Filen stack.py
class Stack:
def __init__(self):
self.top = None
def push(self,x):
ny = Node(x)
ny.next = self.top
self.top = ny
def pop(self):
x = self.top.value
self.top = self.top.next
return x
def isempty(self):
if self.top == None:
return True
else:
return False
class Node:
def __init__(self, x):
self.value = x
self.next = None
|
raden = raw_input("Ge en rad tal: ")
raden_i_delar = raden.split()
for tal in raden_i_delar:
print tal
|
append(x) Lägger till x sist i listan.
insert(i,x) Lägger till x på plats i.
pop() Plockar bort sista elementet från listan.
sort() Sorterar listan.
reverse() Vänder på listan.
index(x) Returnerar index för första förekomsten av x.
count(x) Räknar antalet x i listan.
remove(x) Tar bort första förekomsten av x.
[i] Returnerar i:te elementet i listan.
[:] Plockar ut en dellista.
+ Konkatenerar två listor
* Flerdubblar listan.
in Kollar om ett element finns med i listan.
len Returnerar listans längd.
infil = open("tred.txt")
lista = []
for rad in infil:
ordet = rad.strip()
lista.append(ordet)
lista.sort()
print lista
|
import urllib
import time
def lasFilSortera(filnamn):
infil = open(filnamn)
lista = []
for rad in infil:
ordet = rad.strip()
lista.append(ordet)
lista.sort()
return lista
def lasURLSortera(url):
infil = urllib.urlopen(url)
lista = []
for rad in infil:
ordet = rad.strip()
lista.append(ordet)
lista.sort()
return lista
innan = time.time()
lista1 = lasFilSortera("tred.txt")
efter = time.time()
print "Tid för filläsning:", efter - innan
innan = time.time()
lista2 = lasURLSortera("http://www.csc.kth.se/utbildning/kth/kurser/DD1320/tild\
a11/ovn/tred.txt")
efter = time.time()
print "Tid för webbläsning:", efter - innan
|
I kursen ska ni själva implementera datastrukturer, oftast genom att skriva egna klasser i Python.
* Temperatur kan anges i olika skalor. En abstrakt datatyp minskar risken för missförstånd. Definiera klassen temp med metoderna setK, setC, setF och getK, getC, getF.
* Använd sedan klassen i ett program som läser in utomhustemperaturen
(Celsius) och skriver ut temperaturen så att en amerikan förstår (Fahrenheit).
Filen temp.py:
nollC = 273.15
nollF = 255.3722 #F-nollan i Kelvin
class Temp:
def __init__(self):
self.K = 0 #Temperatur i Kelvin
def setK(self,K):
self.K = K
def setC(self,C):
self.K = nollC+C
def setF(self,F):
self.K = nollF+5*F/9
def getK(self):
return self.K
def getC(self):
return self.K-nollC
def getF(self):
return (self.K-nollF)*9/5
|
# encoding: Latin1 (tillåt å, ä och ö)
# Fraction-klassen
class Fraction:
def __init__(self, top, bottom):
self.num = top
self.den = bottom
def __str__(self):
return str(self.num)+"/"+str(self.den)
def show(self):
print self.num,"/",self.den
def __add__(self,otherfraction):
newnum = self.num*otherfraction.den + \
self.den*otherfraction.num
newden = self.den * otherfraction.den
return Fraction(newnum,newden)
def __cmp__(self,otherfraction):
num1 = self.num*otherfraction.den
num2 = self.den*otherfraction.num
if num1 < num2:
return -1
else:
if num1 == num2:
return 0
else:
return 1
|
Svara på följande frågor:
Fraction-objekt?
__init__?
self?
__str__?
__add__?
__cmp__?
otherfraction i __add__ och __cmp__?
def iso2utf(strang):
"""
Konverterar från iso8859 till utf-8
"""
ustrang = strang.decode('iso8859-1')
return ustrang.encode('utf-8')
|