Python ja vertailu

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ä...
3322
Äänestä

Muut lukivat myös

Vastaukset 3

Vanhimmat

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.

Äänestä
  • Kiitoksia paljon! :)

    Äänestä

  • Anonyymi00002 kirjoitti:

    Kiitoksia paljon! :)

    Kiitä tekoälyä.

    Äänestä

Kommentoi aloitusta


Anonyymi-ap kirjoitti:

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

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu