Permalänk

Python 2.5 släppt!

Vet att det finns en del andra Pythonkodare här som kanske är intresserade om de inte vet om det redan.

Nya funktioner inkluderar
Villkorliga uttryk, altså ett uttryck som returnerar olika värden beroende på en villkorssats:

x = "Jippii" if (userscore >= 1000) else "Försök igen"

'with' statement, som gör det enkelt att se till att filer stängs ordentligt oavsett om undantag väcks eller ej.

with open('myfile', 'r') as f: for line in f: print line

Filen stängs där automatiskt när den skrivit ut alla rader, även om något blir fel.

Relativa importer, använd . eller .. i from..import för att importera saker som ligger brevid eller en bit uppåt i mapphierakin.

from .. import module

ctypes, som gör det busenkelt att använda sig av dll-filer är nu med i standardlibbet. Det är även sqlite3 som är en lättviktsdatabas som jobbar mot filer.

Läs om fler nya funktioner och om hur man använder det nya:
What's New in Python 2.5

Så vill jag också passa på att tipsa om den irckanal jag försöker få igång på quakenet, #python.se för diskussioner om python på svenska. Behöver du hjälp eller tips kan du fråga där. Vi är inte så många än, men desto fler som hänger där desto större blir vi, så joina gärna, speciellt om du är bra på Python och är villig att hjälpa folk som kommer in och frågar saker.

edit: fel länk

Visa signatur

Python-IRC på svenska: #python.se

Permalänk
Medlem

Trevlig sammanfattning av nyheter, även om jag trodde Python 2.5 funnits ett tag.

*Går in på kanalen*

Permalänk
Medlem

Mycket trevlig sammafattning. Uppskattas!

Citat:

Ursprungligen inskrivet av min1su
Trevlig sammanfattning av nyheter, även om jag trodde Python 2.5 funnits ett tag.

2.5-FINAL har bara funnits i några dagar vad jag vet.

Visa signatur
Permalänk

Re: Python 2.5 släppt!

Citat:

Ursprungligen inskrivet av Sebastianj

Nya funktioner inkluderar
Villkorliga uttryk, altså ett uttryck som returnerar olika värden beroende på en villkorssats:

x = "Jippii" if (userscore >= 1000) else "Försök igen"

Var är skillnaden mot:

x = (userscore >= 1000) ? "Jippii" : "Försök igen"

eller existerar inte den syntaxen i python?

Visa signatur

"Mies saa kaatua mutta ei karata." -- Adolf Ehrnrooth IR 7, Äyräpää 1944.

Permalänk

Re: Re: Python 2.5 släppt!

Citat:

Ursprungligen inskrivet av Turbo_tail
eller existerar inte den syntaxen i python?

Nej, gör den inte, Guido ville ha något mer pythoniskt. Det fick vi nu.

Visa signatur

Python-IRC på svenska: #python.se

Permalänk
Medlem

'with' statement var en rolig nyhet!

Visa signatur

MVH Adam
Kulturstrategisk aggregator

Permalänk

Re: Re: Re: Python 2.5 släppt!

Citat:

Ursprungligen inskrivet av Sebastianj
Nej, gör den inte, Guido ville ha något mer pythoniskt. Det fick vi nu.

Men jag förstår då inte skillnaden mot en helt vanlig:

if (userscore >= 1000): x = "Jippii" else: x = "Försök igen"

Känns onödigt?

Visa signatur

"Mies saa kaatua mutta ei karata." -- Adolf Ehrnrooth IR 7, Äyräpää 1944.

Permalänk
Medlem

Skillnaden ligger i att det är enklare och snabbare att skriva den nya formen.

I Sebastianjs exempel så har du bara en tilldelning till x men värdet som tilldelas är olika beroende på resultatet av uttrycket. I ditt exempel så har du två tilldelningar till x, och vilken man väljer beror på resultatet av uttrycket.

En obetydlig skillnad kan tyckas men det nya sättet uttrycker bättre vad det är man vill uppnå.

Permalänk
Citat:

Ursprungligen inskrivet av KTottE
Skillnaden ligger i att det är enklare och snabbare att skriva den nya formen.

I Sebastianjs exempel så har du bara en tilldelning till x men värdet som tilldelas är olika beroende på resultatet av uttrycket. I ditt exempel så har du två tilldelningar till x, och vilken man väljer beror på resultatet av uttrycket.

En obetydlig skillnad kan tyckas men det nya sättet uttrycker bättre vad det är man vill uppnå.

Jo, men känns faktiskt onödigt att införa en sådan "funktion" om man ändå tvingas skriva "if-else". Det man sparar (förutom någon rad) är två tecken: "x="

Syntaxen: variabel = (boolean uttryck) ? "om true" : "om false" känns betydligt smidigare.

Nåja, detta var en obetydlig parentes. Låt diskussionen fortsätta med något mera relevant.

Visa signatur

"Mies saa kaatua mutta ei karata." -- Adolf Ehrnrooth IR 7, Äyräpää 1944.

Permalänk
Citat:

Ursprungligen inskrivet av Turbo_tail
Jo, men känns faktiskt onödigt att införa en sådan "funktion" om man ändå tvingas skriva "if-else". Det man sparar (förutom någon rad) är två tecken: "x="

Syntaxen: variabel = (boolean uttryck) ? "om true" : "om false" känns betydligt smidigare.

Nu hänger jag inte med? Du menar att det viktiga med conditional expressions är att man sparar några enstaka tecken? Grejen med dem är ju att de är kortare och smidigare. Dels för att det blir en rad och dels för att man slipper skriva variabelnamnet en gång. Har man det dessutom i en rad med annat så kan man vinna en hel del på det.

Fem tecken extra för tydlighets skull tycker jag inte är något problem. Speciellt inte då det gör det klart tydligare vad koden gör, och vilket som körs vid true respektive false till skillnad från ?:-syntaxen.

Visa signatur

Python-IRC på svenska: #python.se

Permalänk
Medlem

Framförallt så tycker jag det är trevligt att den nya funktionaliteten inte inför fler specialtecken i syntaxen eller fler operatorer.

Python är ett 'litet' språk ur den synpunkten, och jag ser gärna att det fortsätter vara det.

Permalänk
Medlem

Fasiken vad trevligt... Nu ska jag nog ta o lära mig python ordentligt.

Permalänk
Citat:

Ursprungligen inskrivet av Turbo_tail
Jo, men känns faktiskt onödigt att införa en sådan "funktion" om man ändå tvingas skriva "if-else". Det man sparar (förutom någon rad) är två tecken: "x="

Syntaxen: variabel = (boolean uttryck) ? "om true" : "om false" känns betydligt smidigare.

Nåja, detta var en obetydlig parentes. Låt diskussionen fortsätta med något mera relevant.

Den nya språkkonstruktionen har i likhet med C ingenting att göra med "smidighet" eller att spara in lite tecken.

Poängen är att man kan använda värdet av en s.k "expression" som lvalue.

Håller dock med dig om att syntaxen är pinsamt dålig.

Permalänk
Medlem

En hel del är ju snarare (förväntad) standard i Python 2.6 på den sidan, inte 2.5. Har ju funnits en __future__-modul tidigare också.

Visa signatur

g++

Permalänk
Citat:

Ursprungligen inskrivet av Rhino
En hel del är ju snarare (förväntad) standard i Python 2.6 på den sidan, inte 2.5. Har ju funnits en __future__-modul tidigare också.

nja, det är så att features som tillför/ändrar på syntax alltid införs i en __future__-modul i första versionen, för att i nästa version bli default. Det för att man inte ska få konstiga problem om man kör i en tidigareversion. Om man t.ex. skulle köra ett 2.5-script i 2.4 så är ju ett "SyntaxError: future feature with_statement is not defined" lite tydligare än ett "invalid syntax" vid användandet.

Funktionen finns där, den behöver bara aktiveras. Sen för version 2.6 kan man helt enkelt ta bort importen.

Citat:

Ursprungligen inskrivet av BobbyFromDallas
Håller dock med dig om att syntaxen är pinsamt dålig.

Finns iaf en förklaring på sidan om PEP 308: Conditional Expressions, sen om man håller med eller ej är ju en annan sak, jag väntar nog med en dom till jag använt syntaxen lite och vet hur den känns.

Visa signatur

Python-IRC på svenska: #python.se

Permalänk
Medlem

Syntaxen är inte konstig eller ovanlig tycker jag, både Perl och Ruby använder sig av samma sorts system, dock är jag osäker på om de tillåter en else-sats också.

Permalänk
Medlem

Jag tycker nästan python har för mycket keywords.

De borde bestämma sig för en slutgiltig standard för språket och hålla sig till det... det är nästan lite Sun/Java-stil att hålla på och lägga till nya saker efter tycke.

Permalänk
Medlem

Python har just nu 31 stycken keywords (om vi räknar med de som egentligen inte blir keywords förrän version 2.6).

C har 32 keywords, Ruby har 38, PHP har 48 (Och då räknade jag inte konstanter och andra reserverade ord!).

Vilket språk tycker du har tillräckligt få keywords?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av KTottE
Python har just nu 31 stycken keywords (om vi räknar med de som egentligen inte blir keywords förrän version 2.6).

C har 32 keywords, Ruby har 38, PHP har 48 (Och då räknade jag inte konstanter och andra reserverade ord!).

Vilket språk tycker du har tillräckligt få keywords?

Lisp?

Visa signatur

:€

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av KTottE
Python har just nu 31 stycken keywords (om vi räknar med de som egentligen inte blir keywords förrän version 2.6).

C har 32 keywords, Ruby har 38, PHP har 48 (Och då räknade jag inte konstanter och andra reserverade ord!).

Vilket språk tycker du har tillräckligt få keywords?

Redan ett keyword är för mycket.

Permalänk
Medlem

Haha, fin räddning! Tyvärr så håller den inte riktigt hela vägen, troll.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av KTottE
Haha, fin räddning! Tyvärr så håller den inte riktigt hela vägen, troll.

Det jag ville ha sagt med mitt första inlägg i den här tråden är att jag inte gillar när programmeringsspråk förändras och nya funktioner och nyckelord läggs till efter tycke. Sådant kan skada redan existerande kod och gör tillvaron mera instabil för programmerarna.

Det verkar som du hakar upp dig på detaljer. Det är ett vanligt misstag. Jag har själv gjort det några gånger.

Permalänk
Medlem

Personligen tycker jag det är bra med utveckling i språk. Visst, det är inte bakåtkompatibelt alltid, men det är ju nåt man får ta. Att det kan skada existerande kod tror jag inte på. Det lär dom kolla rätt hårt. Iaf inte inom 2.x (P3K kan man nog tänka sig dock att man behöver se över sina program innan man testar dom på det..)

Ska bli intressant att testa de nya featuresarna tycker jag. Även om villkorliga uttryck inte är nåt som behövs, så tror jag det kan vara ett tydligare sätt att skriva

if (userscore >= 1000):
x = "Jippii"
else:
x = "Försök igen"

när man verkligen bara vill assigna nåt till x beroendes på vad y har för värde.

Visa signatur

Min hemsida: http://www.srekel.net
Pocket Task Force: http://ptf.srekel.net
Kaka e gott! http://kaka.srekel.net

Permalänk
Avstängd
Citat:

[i]...jag inte gillar när programmeringsspråk förändras och nya funktioner och nyckelord läggs till efter tycke. Sådant kan skada redan existerande kod och gör tillvaron mera instabil för programmerarna...

Word! Väl talat. Se på Java, det är mer konservativt. Jag gillar inte heller när de ändrar i språket hej vilt hela tiden, såsom C#.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av emilsson
Word! Väl talat. Se på Java, det är mer konservativt. Jag gillar inte heller när de ändrar i språket hej vilt hela tiden, såsom C#.

Tycker det e bra att nya språk utvecklas, C# har inte funnits speciellt länge, så det känns helt ok att det ändras. Generics mm som kom iom 2.0 tycker jag var väl värda att läggas till iaf. Programmerar man i C# så vet man dessutom att det är ett nytt språk som fortfarande utvecklas, jämfört mot tex C som är väldigt statiskt.

Srekel: Jodå, några grejer behöver man tänka på även om det inte är så mkt (lr något jag lär råka ut för): http://docs.python.org/whatsnew/porting.html

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av vb
Tycker det e bra att nya språk utvecklas, C# har inte funnits speciellt länge, så det känns helt ok att det ändras. Generics mm som kom iom 2.0 tycker jag var väl värda att läggas till iaf. Programmerar man i C# så vet man dessutom att det är ett nytt språk som fortfarande utvecklas, jämfört mot tex C som är väldigt statiskt.

Srekel: Jodå, några grejer behöver man tänka på även om det inte är så mkt (lr något jag lär råka ut för): http://docs.python.org/whatsnew/porting.html

Där ser man.

Visa signatur

Min hemsida: http://www.srekel.net
Pocket Task Force: http://ptf.srekel.net
Kaka e gott! http://kaka.srekel.net

Permalänk
Medlem

Jag tar hellre ett språk som ändrar sig hejvilt än ett språk som håller fast vid trasiga saker.

Python har dessutom ett väldigt trevligt system med ny funktionalitet:

Version 2.4 släpps med nyheterna X, Y och Z. Dessa är dock inte helt aktiva ännu, utan måste importeras från future-modulen till exempel. Saker som är tänkt att de ska bli förbjudna i framtiden är också varningar i denna version.

Version 2.5 släpps med nyheterna A, B och C. X, Y och Z är nu del av Python som vanligt, och saker som var varningar i 2.4 är fel i 2.5.

Rinse, repeat.

Permalänk
Medlem

Vaddå inte gillar när keywords etc läggs till efter tycke?
tror knappast att det finns Ett språk som inte ändrats...
är alltid något som man kommer på som måste läggas till/tas bort för att det ska underlätta för programmeraren.

tror t.ex inte att If-satser fanns direkt i första språket, dom la nog till det när dom kom på att dom ville kunna kolla värden på variabler etc.

Så skärp er och koda istället!

//AJL

Visa signatur

C#/MonoGame Fanatiker.
Pixel Artist & Game Developer

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av AJL
tror t.ex inte att If-satser fanns direkt i första språket, dom la nog till det när dom kom på att dom ville kunna kolla värden på variabler etc.

Så skärp er och koda istället!

//AJL

Vilket första språk? Binärkod?

Det är inte alla språk som kan ändras hur som helst. T.ex. så fastställdes den slutgiltiga standarden för C++ i Morristown, USA, Fredagen den 14:e November 1997. Jag har inte märkt någon som klagar på att saker fattas i C++. Om någonting skulle fattas så skulle ett nytt språk skapas.

Permalänk
Medlem

C++-standarden är inte alls slutgiltig, de jobbar just nu på C++0x som skall bli nästa officiella standard.

Ditt argument är felaktigt, korkat och leder ingen vart. Medge att slaget är förlorat.