Fler variabler ur en funktion i python?

Här diskuteras programmering och utveckling
Användarvisningsbild
Chippen
Inlägg: 1237
Blev medlem: 05 jun 2006, 18:15
Ort: Haninge Kommun

Fler variabler ur en funktion i python?

Inlägg av Chippen »

jag hålle rpå att lära mig python (jag vet jag lära mig både python och java paralellt, men främst python, java bara när jag har tråkigt :P)

men jag har en fundering
säg att man har en fuktion som se ut såhär:

Kod: Markera allt

def exempel(a, b, c):
	d = a + b
	e = a + c
låt nu säga att jag vill kunna använda d utanför funktionen då kan jag ju skriva

Kod: Markera allt

def exempel(a, b, c):
	d = a + b
	e = a + c
	return d
men hur gör jag om jag vill kunna använda både d och e utanför funktionen?
Lars
Inlägg: 6191
Blev medlem: 14 jan 2007, 19:31
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Ort: Stockholm

SV: Fler variabler ur en funktion i python?

Inlägg av Lars »

Du kan returnera en tuppel, så här:

Kod: Markera allt

def exempel(a, b, c):
	d = a + b
	e = a + c
	return (e, d)

(e, d) = exempel(1, 2, 3)
r =  exempel(1, 2, 3)
e = r[0]
d = r[1]
Användarvisningsbild
Chippen
Inlägg: 1237
Blev medlem: 05 jun 2006, 18:15
Ort: Haninge Kommun

SV: Fler variabler ur en funktion i python?

Inlägg av Chippen »

åå fint, en tuppel är alltså samma sak som en vektor?

jag är lite förvirrad över raden

(e, d) = exempel(1, 2, 3)

är (e, d) ett variabel namn där elle vad händer?
Lars
Inlägg: 6191
Blev medlem: 14 jan 2007, 19:31
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Ort: Stockholm

SV: Fler variabler ur en funktion i python?

Inlägg av Lars »

Nja, en tuppel liknar en lista men den är "immutable", d.v.s. du kan inte ändra den efter att den skapats.

"(e,d) = exempel()" tror jag kallas tuppeluppackning eller nåt. Det fungerar bara om tuppeln har lika många element som det finns variabler på vänster sida. Så e tilldelas första elementet i tuppeln och d det andra.
Användarvisningsbild
Chippen
Inlägg: 1237
Blev medlem: 05 jun 2006, 18:15
Ort: Haninge Kommun

SV: Fler variabler ur en funktion i python?

Inlägg av Chippen »

aha...

så ungefär som att i den raden så skapas tuppeln och i nästa tilldelas den?
Användarvisningsbild
Smygis
Inlägg: 849
Blev medlem: 21 jun 2006, 18:41
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS
Ort: Kramfors

SV: Fler variabler ur en funktion i python?

Inlägg av Smygis »

Kod: Markera allt

>>> def lol(a,b):
...    return (a*a, b*b)
...
>>> hej = lol(2,3)
>>> hej[0]
4
>>> hej[1]
6
>>> (foo, bar) = lol(3,2)
>>> foo
6
>>> bar
4
(Obs, Jag har inte tillgång till en pythontolk nu så om det är något fel´där så slå mig inte.)
A Foolish Consistency is the Hobgoblin of Little Minds.Beware: In C++, your friends can see your privates!
Användarvisningsbild
Sprak
Inlägg: 394
Blev medlem: 27 sep 2006, 22:55
OS: Ubuntu
Utgåva: 16.04 Xenial Xerus LTS
Ort: Götet/Vänersborg

SV: Fler variabler ur en funktion i python?

Inlägg av Sprak »

<Trådkapning>
Förlåt att jag kapar tråden lite. Men jag har märkt att det börjat dyka upp fler och fler Pythonfrågor här på forumet så jag känner mig lite sugen att testa själv. Vilken editor/IDE tycker ni är bra att använda? IDLE tyckte jag kändes lite för mycket 80-tal (trots att den är från mitten av 90-talet va?).
</Trådkapning>
Användarvisningsbild
DrMegahertz
Inlägg: 296
Blev medlem: 06 maj 2006, 14:37
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS
Ort: Södra Dalarna

SV: Fler variabler ur en funktion i python?

Inlägg av DrMegahertz »

Om man gillar Emacs så kan man dra ner python-mode och på så sätt få fin syntaxmarkering och automatisk intendering för Python :)

sudo apt-get install python-mode
BildAre you shpongled? Bild
Användarvisningsbild
Sprak
Inlägg: 394
Blev medlem: 27 sep 2006, 22:55
OS: Ubuntu
Utgåva: 16.04 Xenial Xerus LTS
Ort: Götet/Vänersborg

SV: Fler variabler ur en funktion i python?

Inlägg av Sprak »

DrMegahertz skrev: Om man gillar Emacs...
Jag har aldrig lyckats hitta min metatangenten :P
Finns det ingen "mordernare" editor i stil med Eclipse?
Användarvisningsbild
DrMegahertz
Inlägg: 296
Blev medlem: 06 maj 2006, 14:37
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS
Ort: Södra Dalarna

SV: Fler variabler ur en funktion i python?

Inlägg av DrMegahertz »

Min meta-tangent visade sig vara Alt! :D

Men visst finns det fullfjädrade IDE'ér för python, här är en liten lista;
http://wiki.python.org/moin/IntegratedD ... vironments

Använder dock ingen av dem själv så jag kan inte rekommendera någon.. :(
BildAre you shpongled? Bild
Användarvisningsbild
Chippen
Inlägg: 1237
Blev medlem: 05 jun 2006, 18:15
Ort: Haninge Kommun

SV: Fler variabler ur en funktion i python?

Inlägg av Chippen »

jag tycker det är förvirrande med alla dessa program till programmering... i python så skriver jag min kod och kör den i terminalen:

python ./minkod.py


tack för hjälpen iaf, jag förstår nu (tror jag :D)
Användarvisningsbild
Smygis
Inlägg: 849
Blev medlem: 21 jun 2006, 18:41
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS
Ort: Kramfors

SV: Fler variabler ur en funktion i python?

Inlägg av Smygis »

Sprak skrev:
DrMegahertz skrev: Om man gillar Emacs...
Jag har aldrig lyckats hitta min metatangenten :P
Finns det ingen "mordernare" editor i stil med Eclipse?
python pluginet till Eclipse kanske.... Eller SPE:

sudo apt-get install spe

Den är ganska trevlig. Men om man bara ska börja lite så är gedit alldeles utmärkt.
A Foolish Consistency is the Hobgoblin of Little Minds.Beware: In C++, your friends can see your privates!
Användarvisningsbild
Sprak
Inlägg: 394
Blev medlem: 27 sep 2006, 22:55
OS: Ubuntu
Utgåva: 16.04 Xenial Xerus LTS
Ort: Götet/Vänersborg

SV: Fler variabler ur en funktion i python?

Inlägg av Sprak »

Tackar, tackar
Användarvisningsbild
Chippen
Inlägg: 1237
Blev medlem: 05 jun 2006, 18:15
Ort: Haninge Kommun

SV: Fler variabler ur en funktion i python?

Inlägg av Chippen »

Chippen skrev: jag tycker det är förvirrande med alla dessa program till programmering... i python så skriver jag min kod i gedit och kör den i terminalen:

python ./minkod.py


tack för hjälpen iaf, jag förstår nu (tror jag :D)
Edit: förvirrande gramatik ordnad...
jabbadoo
Inlägg: 232
Blev medlem: 11 dec 2006, 21:09
OS: Ubuntu
Utgåva: 10.04 Lucid LTS
Ort: Sweden
Kontakt:

SV: Fler variabler ur en funktion i python?

Inlägg av jabbadoo »

du kn alltid använda dig av global

Kod: Markera allt

hej ='test'

var='ännu ett test'

def fu():
    global var #visar att när du skriver varibeln var i fu så menar du den globala variabeln!
    global hej #gör samma fast med hej
    hej, var='nu har vi ändrat variablerna'
    # du behöver inte return
fu()
print hej, var
Lars
Inlägg: 6191
Blev medlem: 14 jan 2007, 19:31
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Ort: Stockholm

SV: Fler variabler ur en funktion i python?

Inlägg av Lars »

jabbadoo skrev: du kn alltid använda dig av global
Man kan ju göra så, men det är inte rätt ;)

Globala variabler är ett otyg och man ska i de allra flesta fall undvika dem. Det kan bli väldigt svårt att följa hur globala variabler används och hur de påverkar programflödet. I ett litet kort program så fungerar det väl, men så fort programmet blir lite större så bli det en mardröm att underhålla om det finns för många globala variabler.
jabbadoo
Inlägg: 232
Blev medlem: 11 dec 2006, 21:09
OS: Ubuntu
Utgåva: 10.04 Lucid LTS
Ort: Sweden
Kontakt:

SV: Fler variabler ur en funktion i python?

Inlägg av jabbadoo »

det spelar ju ingen roll! om du använder (d, e) så får du lika många global variables som om du använder global hej, global var!!! jag menar inte att du bara ska använda global varibles i hela och all functioner, jag menar att man kan använda det för de data man vill ha tebax! det du inte vill ha tebax in i global sk du ju självklart itne använda global, och då får man precis lika mycket variabler som i den andra tupeln, och enligt mig lättare att hålla koll på, istället för att hela tiden komma ihåg vart alla varibler kommer i tupeln. det är mycket händigt om man ska ha inställningar och grejs =), men i slutet är det nog en smaksak
Användarvisningsbild
Chippen
Inlägg: 1237
Blev medlem: 05 jun 2006, 18:15
Ort: Haninge Kommun

SV: Fler variabler ur en funktion i python?

Inlägg av Chippen »

tackar... jag förstår vad ni båda menar... dock tror jag att det blir lättare att följa flödet med en tuppel (men jag har å andra sidan ingen erfarenhet av nått så vad vet jag)
jabbadoo
Inlägg: 232
Blev medlem: 11 dec 2006, 21:09
OS: Ubuntu
Utgåva: 10.04 Lucid LTS
Ort: Sweden
Kontakt:

SV: Fler variabler ur en funktion i python?

Inlägg av jabbadoo »

som sagt, en smaksak =)
Skriv svar

Återgå till "Programmering och webbdesign"