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ä...
Python ja vertailu
3
202
Vastaukset
- 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
IL - Kansanedustaja tehnyt ITSEMURHAN eduskuntatalossa!!
"IL:n tiedot: Kansanedustaja tehnyt itsemurhan Eduskuntatalossa Iltalehden tietojen mukaan kansanedustaja on tehnyt its4018682Eemeli Peltonen teki itsemurhan eduskuntatalossa
Kevyet mullat sitten vaan. Ei mulla muuta.1683041- 161433
- 731043
- 761038
- 27985
Sylikkäin.
Sylikkäin, suudellen. Milloin haluaisit näin nainen tehdä ? Vain häntä ajatellen 😘. Tietenkin jos häntä asia kiinnosta62940- 55933
- 65880
Eemeli Peltosen viimeinen postaus Facebookissa!
"Olen ollut kevätistuntokauden viimeisillä viikoilla paljon poissa eduskuntatyöstä. Sain toukokuussa hyvää hoitoa HUSiss73864