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

397

    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
      42
      2998
    2. Kauppalehti - Törkeä skandaali paljastui: Espanja käytti EU-rahoja ihan muuhun kuin piti

      Espanja on käyttänyt miljardeja euroja EU:n elpymisavustuksia eläkkeisiin ja sosiaalimenoihin – ja pyytää lisää. Espanj
      Maailman menoa
      87
      2906
    3. SDP pelastaa uppoavan Suomen

      2027 kun SDP voittaa ylivoimaisesti vaalit alkaa Suomen uusi raju syöksy kohti täystyöllisyyttä ja turvallisempaa yhteis
      Maailman menoa
      160
      2812
    4. Jopa Espanjassa talous kasvaa, Purra vain irvistelee

      Huomaa kuinka Purra on Suomen historian huonoin miniseteri, joka ei ole saanut aikaiseksi kuin tuhoa, Siis jopa vasemmis
      Maailman menoa
      201
      2105
    5. Minkä ikäinen

      on kaipaamasi ihminen? Minä vuonna syntynyt?
      Ikävä
      112
      1978
    6. 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
      15
      1963
    7. 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
      50
      1579
    8. Tsemii Pete ja Linda! Tässä tärkeät kellonajat Euroviisut-viikon ohjelmista tv:ssä!

      Euroviisut järjestetään Wienissä Itävallassa 12.-16. toukokuuta. Tsemii Pete ja Linda kisaan! Vetäkää Suomelle voitto Li
      Euroviisut
      37
      1564
    9. Raiskaukset loppumaan?

      Onko kenelläkään tiedossaan tuloksellisia keinoja saada väkisinmakaaminen loppumaan tai edes vähenemään? Lainsäädännön
      Sinkut
      370
      1421
    10. Gallup! Mitä kirjainta kaipaat ja rakastat?

      Etunimen eka kirjain? Aloitan V
      Ikävä
      87
      1061
    Aihe