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

324

    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. Mitkä asiat

      tekevät vaikeaksi kohdata kaivattusi?
      Ikävä
      73
      873
    2. Miltä se tuntuu

      Miltä se tuntuu havahtua, että on ollut ihmistä kohtaan, joka on rakastanut ja varjellut, täysi m*lkku? Vai havahtuuko s
      Ikävä
      104
      718
    3. 35
      587
    4. Rakas

      Eihän se tietysti minulle kuulu, mutta missä sinä olet? 😠
      Ikävä
      35
      587
    5. Haluaisitko oikeasti

      Vakavampaa välillemme vai tämäkö riittää
      Ikävä
      47
      583
    6. Pidit itseäsi liian

      Vanhana minulle? Niinkö?
      Ikävä
      40
      575
    7. En mahda sille mitään

      Olet ihanin ja tykkään sinusta todella paljon.
      Ikävä
      29
      572
    8. Joko olet luovuttanut

      Mun suhteen?
      Ikävä
      50
      550
    9. Mitä se olisi

      Jos sinä mies saisit sanoa kaivatullesi mitä vain juuri nyt. Ilman mitään seuraamuksia yms. Niin mitä sanoisit?
      Ikävä
      34
      547
    10. Sinunkin pitää jättää

      Se kaivattusi rauhaan.
      Ikävä
      35
      474
    Aihe