Python ja vertailu

Anonyymi-ap

Ohjelma kysyy lukua. Sallitut arvot ovat kokonaislukuja nolla ja siitä ylöspäin.

Kuinkas tuohon nyt saa rakennettua ehdon jolla arvoa kysytään uudestaan mikäli käyttäjä onkin syöttänyt vaikkapa kirjaimen tai liukuluvun?

Kun input-lauseelle annettu vastaus tallentuu muuttujaan stringinä. Mikäli muuttujan tyyppi määrittyisi annetun vastauksen perusteella olisi helppoa vain vertailla tyyppejä...

3

162

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Anonyymi

      kuten sanoit, input() palauttaa aina merkkijonon, sinun täytyy itse tarkistaa, onko se muunnettavissa kokonaisluvuksi, ja sitten vielä, että se on vähintään nolla.

      Voit käyttää esimerkiksi try-except-rakennetta näin:

      python
      while True:
      vastaus = input("Anna kokonaisluku, joka on vähintään nolla: ")
      try:
      luku = int(vastaus)
      if luku >= 0:
      break # kelvollinen syöte, poistutaan silmukasta
      else:
      print("Luku ei voi olla negatiivinen.")
      except ValueError:
      print("Et antanut kokonaislukua.")
      Tässä:

      int(vastaus) yrittää muuntaa syötteen kokonaisluvuksi.

      Jos syöte on vaikkapa 5.5 tai abc, se aiheuttaa ValueErrorin ja ohjelma pyytää syötettä uudestaan.

      Jos syöte on esimerkiksi -3, muunnos onnistuu, mutta ehdossa huomataan ettei se kelpaa.

      • Anonyymi

        Kiitoksia paljon! :)


      • Anonyymi
        Anonyymi kirjoitti:

        Kiitoksia paljon! :)

        Kiitä tekoälyä.


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

    Luetuimmat keskustelut

    1. Tukalaa kuumuutta

      Tietäisitpä vaan kuinka kuumana olen käynyt viime päivät. Eikä johdu helteestä, vaan sinusta. Mitäköhän taikoja olet teh
      Ikävä
      42
      2532
    2. Mansikkatiloilla hyväksikäytetään ukrainalaisia

      Työolot ovat surkeita ja palkka kelvoton. https://yle.fi/a/74-20172942
      Maailman menoa
      302
      2172
    3. Sinä, ihastukseni

      Mitä haluaisit tehdä kanssani ensimmäisenä?
      Ihastuminen
      24
      1920
    4. Tiedät ettei tule toimimaan.

      Mielenterveys ei kummallakaan kestä.
      Ikävä
      24
      1635
    5. Ensi kesänä

      Näin kesän viimeisenä minuutteina ajattelen sinua. Olisiko seuraava kesä "meidän" kesä? Tänä vuonna ei onnistuttu, mutta
      Ikävä
      47
      1556
    6. Okei, myönnetään,

      Oisit sä saanut ottaa ne housutkin pois, mutta ehkä joskus jossain toisaalla. 😘
      Ikävä
      25
      1499
    7. Onko kaivatullasi

      himmeä kuuppa?
      Ikävä
      44
      1386
    8. Sokea "ystävälle"

      Oletko oikeasti noin sokea?
      Ikävä
      100
      1359
    9. En ymmärrä käytöstäsi

      Se on ollut eräänlaista hyväksikäyttöä. Että seura kyllä kelpaa palstan välityksellä silloin kun ei ole parempaakaan tek
      Ikävä
      139
      1315
    10. On jo heinäkuun viimeinen päivä.

      En taida nähdä sinua koskaan.
      Rakkaus ja rakastaminen
      36
      1096
    Aihe