Olen yrittänyt aloittaa python ohjelmointia, mutta en ole tajunnut, miten moduuli avataan käyttöön.
Ja kiinnostaisi myös miten kehittyneitä ohjelmia pythonilla saa aikaan?
Wisva kirjoitti:
Olen yrittänyt aloittaa python ohjelmointia, mutta en ole tajunnut, miten moduuli avataan käyttöön.
Eikös siihen riitä se import-rivi tiedoston alussa?
Wisva kirjoitti:
Ja kiinnostaisi myös miten kehittyneitä ohjelmia pythonilla saa aikaan?
Ihan mitä vaan voit kuvitella. Python-softia, joita on ite tullu käytettyä on Frets on Fire, Trac ja Portage.
Blaze kirjoitti:
Wisva kirjoitti:
Olen yrittänyt aloittaa python ohjelmointia, mutta en ole tajunnut, miten moduuli avataan käyttöön.
Eikös siihen riitä se import-rivi tiedoston alussa?
Kiitos, mutta voisitko selittää tarkemmin? En nimittäin tuosta ihan tuosta tajunnut...
Ladataan random-moduuli ja käytetään sitä:
import random a = range(3, 9) print a print random.choice(a) random.shuffle(a) print a
http://docs.python.org/lib/module-random.html
Pythonilla voi tehdä kuinka kehittyneitä ohjelmia vain. Lähinnä kyse on siitä, mikä kieli kannattaa valita missäkin tilanteessa.
Missä kansiossa ton moduulin pitää olla?
Random-moduuli tulee Pythonin mukana, sen sijainti on epäoleellista. Koodiesimerkkini pitäisi toimia tuollaisenaan, jos Python on asennettu.
Wisva kirjoitti:
Missä kansiossa ton moduulin pitää olla?
>>> import sys
>>> print sys.path
['C:\\Python25\\Lib\\idlelib', 'C:\\Python25\\lib\\site-packages\\setuptools-0.6c8-py2.5.egg', 'C:\\Python25\\python25.zip', 'C:\\Python25\\DLLs', 'C:\\Python25\\lib', 'C:\\Python25\\lib\\plat-win', 'C:\\Python25\\lib\\lib-tk', 'C:\\Python25', 'C:\\Python25\\lib\\site-packages', 'C:\\Python25\\lib\\site-packages\\Numeric', 'C:\\Python25\\lib\\site-packages\\PIL']
Noitten hakemistojen lisäksi käy se hakemisto jossa käsiteltävä koodi sijaitsee. Lähde
tueksi.
OK. Mutta minne minun pitää laittaa oma moduulini, jotta python löytää sen, kun kutsun sitä import-komennolla?
Ainakin jos moduuli ja ohjelma ovat samassa hakemistossa, kaiken pitäisi toimia suoraan.
# moduuli.py def kirjoita(): print "Tämä tulee moduulista!"
# ohjelma.py import moduuli moduuli.kirjoita()
Loin tekstitiedoston, jossa oli koodi:
#moduuli.py x=10 print x
ja laiton sen python25 nimiseen kansioon, jossa python(command line) on.
Kysymys kuuluu teinkö mitään oikein? (Ja miten homma pitäisi tehdä?)
Omille kooditiedostoille kannattaa tehdä oma hakemisto, eikä sijoittaa niitä (pääsääntöisesti) python-tulkin hakemistoihin.
Tee sen jälkeen mitä Antti neuvoi. Nuo punaiset kommenttirivit kertovat nimen, joka tallennettavalle tiedostolle pitää antaa. Toiselle moduuli.py ja toiselle ohjelma.py.
En tiedä ymmärsinkö Chimanin viestiä, mutta joka tapauksessa en vieläkään ymmärrä, mitä tein tuossa nyt väärin?
Eli kun teksti tiedoto oli pythonin kansiossa, yritinm käyttää sitä komennolla "import moduuli".
Mitä tapahtui kun yritit käyttää sitä? Onnistuiko? Tuliko virheilmoitus?
Kyllä, tuli virheilmoitus. Tällainen:
Traceback (most recent call last):
file (stdin, line 1, in <module>
ImportError: no module named moduuli
Siinä tapauksessa sinulla ei ollut moduuli.py-tiedostoa samassa hakemistossa tai path-muuttujan hakemistoissa.
Tuo virheilmoitus taitaa kertoa sen, ettet ollut kirjoittanut ohjelmaa esim. ohjelma.py-tiedostoon, vaan kirjoitit suoraan "import moduuli" interaktiivisessa tulkissa (esim. IDLE).
Antti neuvoi jo yllä tarpeelliset tiedostot.
Aihe on jo aika vanha, joten et voi enää vastata siihen.