Mielellään myös helposti opittava kieli.
Paras kieli tekstin parserointiin?
Koodari
10574
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Turvaa tilisi vahvistamalla puhelinnumerosi. Voit silloin palauttaa unohtuneen salasanan tekstiviestillä.
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 10
Vanhimmat
Helposti opittava ja mitään sellaista ei ole mitä sillä ei voisi tehdä.
Tee sitten kirjasto, jonka avulla voin siirtää funktion suoritettavaksi haluamalleni koneelle ja ottaa kiinni sieltä tulevan paluuarvon. Voisin käyttää kirjastosi funktiota "LaskeMuualla" ja "OdotaValmista" näin:
Function JaaTekijoihin (isoluku as Variant)
....
End Function
laskenta1 = LaskeMuualla(JaaTekijoihin, jaettava_luku, "nopeakone1.konehuone.fi")
laskenta2 = LaskeMuualla(JaaTekijoihin, jaettava_luku2, "nopeakone2.konehuone.fi")
paluuarvot = OdotaValmista(laskenta1, laskenta2)
MsgBox "Laskenta 1 palautti:" & paluuarvot(1)
MsgBox "Laskenta 2 palautti:" & paluuarvot(2)
Pythonilla tällaisen toteuttaminen ei kestä kauaa.
regexp, BNF.
perliähän ne jotkut suosivat.
Helppo esimerkki: Teksti sisaltaa etu ja sukunimeja. Siita pitaisi saada parseroitua etunimet pois. Tuo oli vain esimerkki ja vaativampaa parserointia pitaa pystya tekemaan.
Kannattaako opetella Python vai Perl?
Vaatii ihan oikean ohjelmointikielen... VB, Python tai Java. Minä käyttäisin VB.NET:tä. Eikä Visual Basic ykkösessäkään mitään vikaa ole jos et välttämättä halua tehdä oliokoodia? Visual Basic on tyylikkäin ja helpoin, jos vain osaa......
Python ja Perl ovat hyvin erilaiset kielet.
Perl on tulos, kun shell-skriptausta (ja siihen läheisesti liittyvää awkin ja sedin käyttöä) on yritetty liimata yhtenäiseksi ohjelmointikieleksi. Näistä lähtökohdista syntyvä kieli ei mitenkään voi olla siisti, johdonmukainen eikä muutenkaan elegantti. Se voi silti olla varsin käytännöllinen työkalu pikkujuttujen tekemiseen, aivan kuten sh awk sed yhdistelmäkin on. Perl on juuri tätä.
Mutta siinä missä Perlissä ei ole säästelty varatuissa sanoissa tai erityisasemassa olevissa muuttujissa, Python on sen vastakohta. Se on pieni, siisti ja johdonmukainen kieli. Siitä huolimatta käytännön ihmisten ei pidä vierastaa sitä. Python ei nimittäin häviä ilmaisuvoimassa Perlille, koska monet asiat, joiden hoitamiseen Perlissä on ratkaisu kielen syntaksin tasolla, hoidetaan Pythonissa laajalla standardikirjastolla.
Jos on vaarana, että projektin koko kasvaa ja kasvaa, Python on selvästi parempi valinta. Sen lisäksi, että koodista tulee melkein väkisin lukukelpoista (vastoin kuin Perlissä), Python tukee suurempia ohjelmistoprojekteja monella tavalla Perliä paremmin. Mainittakoon tästä mm. muuttujien näkyvyysalueet, vahva tyypitys ja poikkeukset.
Pieniä skriptejä kirjoittavalle, mahdollisesti Unixissa shell-ohjelmointia harrastaneelle Perl saattaa tuntua sopivalta kädenjatkeelta. Oikeita ohjelmia tekevän on kuitenkin syytä valita Python.
Näin helppoa se on Perlillä:
$ echo 'Etunimi Sukunimi' | perl -pe 's/.*? (.*)/$1/g;'
Sukunimi
Ja lisäämällä yhden kirjaimen tuohon saat parsittua sillä kerralla vaikka kokonaisen puhelinluettelon.
Perl soveltuu kyllä laajoihinkin sovelluksiin siinä missä muutkin oikeat ohjelmointikielet, jos ammattitaitoinen henkilö sitä käyttää. Amatöörit saavat kyllä spaghettia aikaan millä tahansa kielellä.
Jos Pythonia harkitsee niin kannattaa tutustua myös Rubyyn ennen sitä, on myös erittäin varteenotettava vaihtoehto.
Pythonilla sukunimi tulostuu näin:
echo 'Etunimi Sukunimi' | python -c 'print raw_input().split()[1]'
ja awkilla (yksi Perlin isistä) näin:
echo 'Etunimi Sukunimi' | awk '{print $2}'
mutta en tekisi noin, vaan loisin nimille tietokannan (M$:n ADO.NET) ja kaappaisin nimet siihen Regexeillä. Se voi olla hitaampaa, mutta olisi paljon nopeampi muokata tai laajentaa. Jos nimille pitäisi tehdä jonkinlainen tarkastus, olisi nimen-lisäämis-tapahtuman käsittely erittäin looginen tapa toteuttaa se.
Oikea vastaus on PERL. Se on alunperin tehty tuota tarkoitusta varten ja sittemmin siitä on kehittynyt kokonainen ohelmointikieli...