Python, bra eller mediokert ?

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43150
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: Python, bra eller mediokert ?

Inlägg av sodjan »

Är det rätt användning av "is"?
Vad är det du vill testa/veta?

Kod: Markera allt

>>> a = 200
>>> a == 200
True
>>> a = 300
>>> a == 300
True
>>>
https://www.w3schools.com/python/ref_keyword_is.asp

"The is keyword is used to test if two variables refer to the same object.
The test returns True if the two objects are the same object.
The test returns False if they are not the same object, even if the two objects are 100% equal.
Use the == operator to test if two variables are equal."
Senast redigerad av sodjan 20 oktober 2022, 17:35:29, redigerad totalt 1 gång.
guckrum
Inlägg: 1671
Blev medlem: 19 juni 2012, 09:04:27
Ort: Lund

Re: Python, bra eller mediokert ?

Inlägg av guckrum »

Ja du refererar till en skrynkla som beskrivs ingående i Pythons FAQ.
Jag tror inte någon sagt att det är bra språkdesign och jag tänkte inte
försvara vare sig Python eller något annat programspråk heller för
den delen. Man kan drömma om eller önska sig perfekta språk eller
OS eller vad som helst egentligen, men det skall kanske vara i en
filosofitråd:-)
Mr Andersson
Inlägg: 1394
Blev medlem: 29 januari 2011, 21:06:30
Ort: Lapplandet

Re: Python, bra eller mediokert ?

Inlägg av Mr Andersson »

Sodjan, jag är fullt medveten om att 'is' testar identitet och inte värde. Poängen var att det är inte konsekvent vilka objekt som blir identitetsoptimerade.
agehall
Inlägg: 418
Blev medlem: 12 augusti 2020, 19:27:54

Re: Python, bra eller mediokert ?

Inlägg av agehall »

Mr Andersson skrev: 20 oktober 2022, 01:18:29 Python är tvingande OO, allt är klasser eller klassinstanser. Skriv t.ex. dir(1) om ni trodde att en så enkel typ som int är 'native'. Massvis med fält och klassmetoder.
Fast jag skulle fortfarande hävda att det är en fusk-OO eftersom man inte kan ha privata variabler i sina klasser. Det är en rätt central funktion i språk som ska vara OO ifall du frågar mig…
JJ
Inlägg: 366
Blev medlem: 16 maj 2005, 21:33:02

Re: Python, bra eller mediokert ?

Inlägg av JJ »

Jag försöker gå över till Python eftersom alla använder det och det stöder allt.

Det är egentligen en sak som jag inte gillar, det går inte att skriva riktigt mikroskopiskt små program med det på kommadoraden.

Exempel: grep implementerat i python:

echo hey | python -c "import sys,re;[sys.stdout.write(line) for line in sys.stdin if re.search('he.', line)]"

Samma sak i exvis ruby:

echo hey | ruby -ne 'puts $_ if $_ =~/he/'

Kortare och smidigare! (Här använder jag rubys kryptiska syntax lånad från perl. Det går också att skriva helt läsligt.)

Vill man göra något mer avacerat på en rad så klarar inte python av det eftersom språket kräver ny fysisk rad för en ny programspråksrad. Kanske går att lösa i en del shell men jag vet inte. Knöligt blir det.

Så svaret blir: för klassen program som är mer komplicerade än grep men inte så komplicerade att de förtjänar en egen fil så tycker jag att språket är mediokert :-)
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43150
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: Python, bra eller mediokert ?

Inlägg av sodjan »

Jag kaller inte one-liners på kommandoraden för "program", så jag ser inte problemet... :)
Senast redigerad av sodjan 28 oktober 2022, 16:11:16, redigerad totalt 1 gång.
JJ
Inlägg: 366
Blev medlem: 16 maj 2005, 21:33:02

Re: Python, bra eller mediokert ?

Inlägg av JJ »

Det beror förmodligen på att du inte är tillräckligt bra programmerare för att slänga ihop något som kan klassas som "program" på bara en kommandorad.

:-)
guckrum
Inlägg: 1671
Blev medlem: 19 juni 2012, 09:04:27
Ort: Lund

Re: Python, bra eller mediokert ?

Inlägg av guckrum »

Man kommer -väldigt- långt med grep, sed, awk, sort, uniq, comm, uniq och company. Räcker inte det till får det bli ett "större" program.

Annars kanske perl är något för dig, med intressant syntax för oneliners och snabba hack:-)

Har du ett bättre exempel än grep?
JJ
Inlägg: 366
Blev medlem: 16 maj 2005, 21:33:02

Re: Python, bra eller mediokert ?

Inlägg av JJ »

Ja ibland tar grep och gänget slut och då behövs kraftigare grejer!

Perl är ju klockrent för sådant men problemet är att perl-program blir svåra att underhålla när de blir större. För ett halvstort program skulle jag välja Python över perl alla dagar i veckan.

sed kan väl nästan allt men är extremt krångligt och omöjligt att begripa. Enligt mig och de flesta andra :-) awk är väl något bättre på den fronten men krångligt.

Min favorit har varit ruby, man kan skriva långa, fina objektorienterade program (ping @agehall) i det, github är skrivet i ruby tex, men man kan också använd det på kommandoraden.

Du ville ha exempel, vi pratar inte produktionskod utan något snabbt...tänk att vi vill grep:a något mer komplicerat, säg alla rader som börjar på ett udda tal eller att vi vill ha skillnaden mellan talen på efterföljande rader:

$ cat textfile  | ruby -ne 's=$_[/^\d+/];if s and s.to_i%2 == 1 then puts $_ end'
$ cat numbers | ruby -ne 'BEGIN{d=0};puts $_.to_i-d;d=$_.to_i'

Inte omöjligt att göra i Python förstås men det blir omständligare och det blir inte på en rad. Jaja, jag försöker lära mig Python bättre men jag halkar tillbaka till ruby när jag får behov av kraftfulla enradare.

Och det är bara att konstatera: Python är det som gäller, i synnerhet med tillägg som numpy och pyplot.
guckrum
Inlägg: 1671
Blev medlem: 19 juni 2012, 09:04:27
Ort: Lund

Re: Python, bra eller mediokert ?

Inlägg av guckrum »

Man kommer långt med vanliga shellkommandon för oneliners:-)

Greppa alla rader som börjar på udda tal

Kod: Markera allt

$ cat fil | grep '^[13579]'
skilladen på tal mellan efterföljande rader, tex såhär

Kod: Markera allt

$ cat fil | paste - - | awk '{print $1-$2}'
JJ
Inlägg: 366
Blev medlem: 16 maj 2005, 21:33:02

Re: Python, bra eller mediokert ?

Inlägg av JJ »

Jo det har du rätt i, jag får komma på svårare exempel om jag vill övertyga om behovet av kraftfullare grejer på kommandoraden :-)

...och så menade du nog något i stil med (udda tal inte udda siffror): :-)
cat fil | grep -P '^\d*[13579]'

Ibland springer man på grejer som är till synes omöjliga med de vanliga kommandona, tex skriva rad 732 tom rad 893. Jag vet att man kan göra det med sed men jag fixar det inte utan att googla. Eller skriva ut en fil from en rad som innehåller APA fram till en rad som innehåller BEPA. (Eller finns det bra sätt som jag missat?) I dom lägena kommer ruby fram på kommandoraden i mitt fall.

Jag hade gärna sett att Python funkade i dessa lägen...

PS Jag har ett scriptproblem som jag inte lyckades lösa med de vanliga kommandona. Det är lite OT här så jag startar nog en ny tråd!
Användarvisningsbild
Krille Krokodil
Inlägg: 4062
Blev medlem: 9 december 2005, 22:33:11
Ort: Helsingborg

Re: Python, bra eller mediokert ?

Inlägg av Krille Krokodil »

Intressant video på ämnet.

Användarvisningsbild
AndLi
Inlägg: 17050
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: Python, bra eller mediokert ?

Inlägg av AndLi »

Ska jag bli orolig för min egna hälsa när jag börjar experimentera med microPython för Raspberry Pi Pico?
(Efter 30 ish år med C som lösningen på allt)
agehall
Inlägg: 418
Blev medlem: 12 augusti 2020, 19:27:54

Re: Python, bra eller mediokert ?

Inlägg av agehall »

Jag ringer 112 omedelbart! Att gå från C till microPython känns som ett allvarligt tillstånd.
Användarvisningsbild
Icecap
Inlägg: 26106
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Python, bra eller mediokert ?

Inlägg av Icecap »

Alla programmeringsspråk har fördelar o nackdelar.
Vissa språk har vissa fördelar, det kan vara att de är trimmat för administration, matte eller annat.

Jag föredrar C hela vägen - men om Python har de nödvendiga drivrutiner här o nu kan jag använda det.

Grejen är ju att om en funktion blir utförd på ett stabilt sätt med hastighet nog - då fungerar projektet och det är vad som behövs.

Sedan kan vi prata om uppdatering, stabilitet och underhåll. Sådana saker beror mer på programmörens sätt, att man skriver ett program i C betyder INTE att det är välskrivet, välstrukturerat eller enkelt att underhålla.

Så hela denna tråd ser jag som min svärfars prat: han har ett handikapp (NLD, som han ej accepterar men likaväl har förd vidare till hans dotter) som gör att överblick/planering är nära nog omöjligt.

Han använder HELA dagen vid datorn o har frågat mig MYCKET om vilket programmeringsspråk som är bäst. Samt om man kan hitta C på danska... alltså if() heter hvis() osv.

Och ja, det kan vara svårt med engelska men att omskriva ett språk är ganska mycket mer svårt.
O då han inte dels kan lyssna & fatta, dels är insnöat på många fel uppfattningar (bla. konspirationsteorier) är det nära nog omöjligt att hjälpa honom.

Så essensen i detta svammel är:
Ett språk som klarar jobbet i tid är ett bra språk.
Struktur beror på programmörn.
Skriv svar