Oma moduuli pythoniin

Anonyymi

Miten tulisi menetellä että seuraavat funktiot toimisi. Haluaisin tehdä oman moduulin pythoniin, jossa olisi nämä alla olevat ja paljon muita näppäriä funktioita.

print(morse_aakkoset)
print(aakkoset_lowercase)
print(aakkoset_uppercase)
print(aakkoset_all)

14

398

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Anonyymi

      Tee kotisivullesi kirjasto finktioistasi esim. funktiot.py tiedostoon. Siis def print1(x): jne...

      Sitten vaan muissa ohjelmissasi:
      from funktiot import print1,print2,print3,jne...

      Tee aluksi vain yksi helppo funktio ja kokeile sillä. Lue virheilmoitukset tarkkaan ja mieti mikä meni väärin. Korjaa.

    • Anonyymi
      • Anonyymi

        python
        import mystring
        print(aakkoset_lowercase)

        Miksiköhän tämä sanoo:
        NameError: name 'aakkoset_lowercase' is not defined


      • Anonyymi
        Anonyymi kirjoitti:

        python
        import mystring
        print(aakkoset_lowercase)

        Miksiköhän tämä sanoo:
        NameError: name 'aakkoset_lowercase' is not defined

        Tarkoittaa ettei sitä ole määritelty.

        Python 3.7.5 (default, Apr 19 2020, 20:18:17)
        [GCC 9.2.1 20191008] on linux
        Type "help", "copyright", "credits" or "license" for more information.
        >>> print(a)
        Traceback (most recent call last):
        File "<stdin>", line 1, in <module>
        NameError: name 'a' is not defined
        >>> a="pölöpölö"
        >>> print(a)
        pölöpölö
        >>>


      • Anonyymi

        Toisessa moduulissa olevaan muuttujaan viitataan laittamalla ensin moduulin nimi, sitten piste ja perään muuttuja.

        moduuli.muuttuja

        Jos moduuli.py sisältää vaikka:
        x="Äks"

        Niin sitä sitten käytetään näin:
        import moduuli
        print(moduuli.x)


      • Anonyymi
        Anonyymi kirjoitti:

        Toisessa moduulissa olevaan muuttujaan viitataan laittamalla ensin moduulin nimi, sitten piste ja perään muuttuja.

        moduuli.muuttuja

        Jos moduuli.py sisältää vaikka:
        x="Äks"

        Niin sitä sitten käytetään näin:
        import moduuli
        print(moduuli.x)

        import moduuli

        Tuon komennon pitäisi tuoda ohjelmaan kerralla kaikki, mitä moduuli sisältää. Mutta nyt on niin että juuri tuo kaiken tuominen ei toimi omista moduuleista tuotaessa, sen sijaan joutuu osoittamaan mudullista sen yksittäisen osan, joka otettaan ohjelmaan mukaan. Ja tämä tässä ihmetyttää miksi se on näin.


      • Anonyymi
        Anonyymi kirjoitti:

        import moduuli

        Tuon komennon pitäisi tuoda ohjelmaan kerralla kaikki, mitä moduuli sisältää. Mutta nyt on niin että juuri tuo kaiken tuominen ei toimi omista moduuleista tuotaessa, sen sijaan joutuu osoittamaan mudullista sen yksittäisen osan, joka otettaan ohjelmaan mukaan. Ja tämä tässä ihmetyttää miksi se on näin.

        Muuttujat on moduulikohtaisia.


      • Anonyymi
        Anonyymi kirjoitti:

        Toisessa moduulissa olevaan muuttujaan viitataan laittamalla ensin moduulin nimi, sitten piste ja perään muuttuja.

        moduuli.muuttuja

        Jos moduuli.py sisältää vaikka:
        x="Äks"

        Niin sitä sitten käytetään näin:
        import moduuli
        print(moduuli.x)

        EI KUN olet oikeassa, noinhan se juuri menee kaikissa moduuleissa.

        Nyt puhuttiin omasta mystring.py moduulista. Pyython sisältää alkuperäisen string.py moduulin, ja sehän toimii just samalla tavalla kuin tuo omakin moduuli.

        import string
        print(string.ascii_lowercase)
        'abcdefghijklmnopqrstuvwxyz'

        import mystring
        print(mystring.aakkoset_lowercase)
        'abcdefghijklmnopqrsštuvwxyzžåäö'

        Mitä minä oikein sekoilen, kaikkihan toimii aivan oikein.


      • Anonyymi
        Anonyymi kirjoitti:

        Muuttujat on moduulikohtaisia.

        Näinhän se on nähtävä. Tuota moduuliani suunnitellessa nimesin tuon (aakkoset_lowercase) mutta kun se nyt noin pitää esitellä moduulin kera niin ei ole mitään haittaa vaikka käyttäisi täysin samaa nimeäkin (ascii_lowercase).


    • Anonyymi

      Pythoni oli ennen iso kakka, semmonen käärmeen oloinen.

      • Anonyymi

        Nykyään sellainen on Iinuks.


    • Anonyymi

      Nyt sitten merkillinen havainto, importin suhteen, tämä alla oleva TOIMII

      python
      from mystring import aakkoset_lowercase
      print(aakkoset_lowercase)

    • Anonyymi

      Miksiköhän ei saa käyttää

      import mystring

      Noi ei tule mitään virhettä, mutta mikään ei toimikkaan. Jostakin syystä oma moduuli ei ole yhden vertainen muiden kanssa.

    • Anonyymi

      Asia on ratkennut, suuret kiitokset pythonin taitajille.

      T. ap.

    Ketjusta on poistettu 1 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Petteri Orpo on satusetä

      Väittää että työllisyys on Suomessa samalla tasolla kuin hallituksen aloittaessa kesällä 2023. Fakta on, että työllisi
      Maailman menoa
      93
      3524
    2. Orpo ja Purra, käykää hakemassa oppia Espanjasta

      Espanja on näyttänyt kuinka kova työttömyys nujerretaan ja saadaan maan talous palautettua nousu-uralle. Ei ole häpeä kä
      Maailman menoa
      56
      2478
    3. Porvarimedia: Räsänen vei Lindtmanilta pääministerin paikan

      Lisäksi suomalaiset ovat innostuneet tuhlaaman, koska kuluttavat inflaation verran enemmän rahaa. Eikö porvarimedialla
      Maailman menoa
      14
      2404
    4. Jääkiekon MM:t pitää siirtää MTV:ltä Ylelle

      Persuille ikäviä uutisia taas. . Valtioneuvoston asetuksen mukaan MM-kisat kuuluvat kansallisesti merkittäviin tapahtumi
      Maailman menoa
      63
      2264
    5. Ruotsi laskee jälleen bensaveroa, Riikka irvailee tumput suorana

      Euron bensa oli persujen vaalilupaus, mutta kohta alkaa olla kolmosella alkavia litrahintoja. Meanwhile in Sverige: "
      Maailman menoa
      16
      2148
    6. Olitkin liian hyvää ollaksesi totta nainen

      Ihastuin ja rakastuin, mutta se on minun ongelma. Ei sinun.
      Ikävä
      99
      1196
    7. Kaste pelastaa ihmisen

      Kristittyjen kirkkojen toimittama yksi Kaste on Jumalan tekemä pelastusteko, jossa perisyntiin hengellisesti kuollut ihm
      Kaste
      567
      1097
    8. Uskon todistus

      Oikean uskovaisen ja nimikristityn erottaa siitä, että Jeesukseen uskova korottaa Jeesusta ja uskoa Häneen, mutta nimik
      Kaste
      261
      996
    9. Ensin oli armo - sen jälkeen tuli usko

      Me emme ansaitse armoa omalla uskollamme. Armo on ansaitsematonta rakkautta mikä synnyttää meidät uudesti Jumalasta. K
      Luterilaisuus
      400
      995
    10. Elisalla ja MTV:llä lihava riita - MTV:n kanavienlähetykset ovat katkeamassa Elisan asiakkailla

      Kaikkien MTV:n kanavien televisiolähetykset ovat katkeamassa Elisan kaapeli-tv-asiakkailta. https://www.is.fi/digitoday
      Maailman menoa
      142
      959
    Aihe