Kirjautuminen

Haku

Tehtävät

Kilpailu

Algoritmikisa
Putka Open 2020 -kisan
4. kierros: 6.–8.11.

Keskustelu: Ohjelmointiongelmat: Python: Miksi if ja elif toimivat eri tavalla?

Sivu 1 / 1

Jokke278 [16.10.2020 13:54:30]

Lainaa #

Tälläinen koodi:

 # -*- coding: cp1252 -*-

def tulostaja():
    print("Oletustulostus")

def main():
      jatku = True
      while jatku:
        syote = input("Anna syöte (Lopeta Lopettaa): ")
        if syote == "Lopeta":
            jatku = False
            break
        elif len(syote) > 4:
            print(syote)
        elif len(syote) < 5:
            tulostaja()


if __name__=="__main__":
    main()

Miksi ohjelma ei lopu "Lopeta" komennolla jos koodi on näinpäin:

if len(syote) > 4:
    print(syote)
elif len(syote) < 5:
    tulostaja()
elif syote == "Lopeta":
    jatku = False
    break

Eli "lopeta" komento on elif muodossa? Tällöin tulee vaan "Anna syöte (Lopeta Lopettaa):"

TapaniS [16.10.2020 14:07:48]

Lainaa #

Tuossa syote -pituus on 6 eli ensimmäinen vertailu toteutuu. Jos ensimmäinen toteutuu, niin elif -osia ei enää suoriteta.

Jokke278 [16.10.2020 17:45:54]

Lainaa #

TapaniS kirjoitti:

Tuossa syote -pituus on 6 eli ensimmäinen vertailu toteutuu. Jos ensimmäinen toteutuu, niin elif -osia ei enää suoriteta.

Aivan niinhän se on. Kiitos tästä.

Vastaus

Muista lukea kirjoitusohjeet.
Tietoa sivustosta