Meddelande
På gamla.pluggakuten.se kan du fortfarande läsa frågorna och svaren som ställts, men du kan inte skapa ett nytt konto eller nya trådar. Nya frågor och nytt konto skapar du på det nya forumet, välkommen dit!
Sidor: 1
- Forum
- » Programmering och teknik
- » Python uppgifter (lista, rätta en kod och rekursiv funktion)
Python uppgifter (lista, rätta en kod och rekursiv funktion)
- wow_08
- Medlem
Offline
- Registrerad: 2016-02-16
- Inlägg: 52
Python uppgifter (lista, rätta en kod och rekursiv funktion)
Hej,
Jag skrev precis en tenta i Python och det fanns tre (av 10) uppgifter som jag inte kunde klura ut (suck). Eftersom att jag är väldigt nyfiken på hur lösningen ser ut undrar jag ifall någon kan hjälpa mig.
1. Skriv en funktion , parseList, som tar en lista som argument samt ett heltal n. Funktionen beräknar längden av alla listor. Längden av de listor som är strikt större än n returneras, konkaterande till en enda stäng. Ex:
parseList([[1,2,3],[2,2],[1], [3,5,6,4]],2) --> '34'
(den tar alltså längden av [1,2,3] och [2,3,6,4] och summerar dessa)
2. Skriv en rekursiv funktion, sumEven, som tar en lista av tal samt argument och returnerar summan av talen på jämna index (index börjar på 0) exempel: sumEven([1,2,3,4,5,6])--> 9 (den tar alltså 2+4+6)
3. Följande kod tar en lista samt argument och returnerar ett par, där det första elementet i paret är det minsta värdet från listan samt det andra elementet är det största värdet. Vi antar att "lst" innehåller heltal.
Koden nedan skall rättas:
def minMax(lst):
min=0
max=min
i=1
while i<=len(lst):
i=i+1
if lst[i]< min:
min=lst[i]
if lst[i] > max:
max=lst[i]
print (min,max)
Som sagt, skrev precis tentan och är allmänt nyfiken på lösningen. Trevlig helg!
- Henrik E
- Medlem
Offline
- Registrerad: 2015-09-22
- Inlägg: 3189
Re: Python uppgifter (lista, rätta en kod och rekursiv funktion)
def parseList(listan,n):
y=""
for x in listan:
if len(x)<=n: continue
y+=str(len(x))
return y
def sumEven(listan):
if len(listan)<2: return 0
return listan[1]+ sumEven(listan[2:])
Senast redigerat av Henrik E (2016-12-17 07:22)
- Henrik E
- Medlem
Offline
- Registrerad: 2015-09-22
- Inlägg: 3189
Re: Python uppgifter (lista, rätta en kod och rekursiv funktion)
min=0 ska vara min=lst[0]
i=1 ska vara i=0
while i <= len(lst): ska vara while i<len(lst):
- wow_08
- Medlem
Offline
- Registrerad: 2016-02-16
- Inlägg: 52
Re: Python uppgifter (lista, rätta en kod och rekursiv funktion)
Tusen tack, trodde att det var mycket svårare.
- wow_08
- Medlem
Offline
- Registrerad: 2016-02-16
- Inlägg: 52
Re: Python uppgifter (lista, rätta en kod och rekursiv funktion)
Hej igen,
eftersom att du är du bra på Python, skulle du kunna visa en lösning på denna (också från tentan)? Vill se om jag ens tänkte rätt.
Vi vill göra en klass MutuableString vars insatser ska representera en modifierbar sträng (strängar är normalt inte modifierbara i Python). Klassen ska deklarera metoderna getString, setString och setCharAt samt initierare/konstruktor. Konstruktorn ska ta strängens initiala värde som argument. Metoden getString ska ta som parameter enny sträng, som ersätter den gamla i sin helhet. Metoden setCharAt ska ta ett tecken som argument samt ett index. Den ska byta ut tecknet på angivet index mot tecknet som tas som parameter.
- wow_08
- Medlem
Offline
- Registrerad: 2016-02-16
- Inlägg: 52
Re: Python uppgifter (lista, rätta en kod och rekursiv funktion)
class MutuableString:
def __init__(self, getString, setString, setCharAt):
self.getString=getString
self.seString=setString
self.setCharAt=setCharAt
- Henrik E
- Medlem
Offline
- Registrerad: 2015-09-22
- Inlägg: 3189
Re: Python uppgifter (lista, rätta en kod och rekursiv funktion)
Visa hur du har försökt!
- Henrik E
- Medlem
Offline
- Registrerad: 2015-09-22
- Inlägg: 3189
Re: Python uppgifter (lista, rätta en kod och rekursiv funktion)
Förlåt, du har ju visat hur du försökt. Meningen är att dom tre metoderna ska definieras i klassen. Du skrev nog fel, setString ska väl sätta en ny sträng och getString ska returnera strängen. Konstruktorn (alltså __init__) ska ta ett enda argument (förutom self).class M(object):
w=[] # lista av tecken
def __init__(self,s):
self.w=list(s)
def getString(self):
return "".join(self.w)
def setString(self,s):
self.w=list(s)
def setCharAt(self,x,k):
self.w[k]=x
Sidor: 1
- Forum
- » Programmering och teknik
- » Python uppgifter (lista, rätta en kod och rekursiv funktion)