def kysy_liukuluku(kysymys, alaraja, ylaraja): """Kysyy käyttäjä liukuluvun tai kokonaisluvun ja tarkistaa syötteen oikean tietotyypin ja suuruuden Args: kysymys (str): Käyttäjälle esitettävä kysymys alaraja (float): pienin sallittu arvo ylaraja (float): suurin sallittu arvo Returns: float: käyttäjän syöttämä arvo liukulukuna """ # Kysytään käyttäjältä tietoa, kunnes saadaan järkevä arvo luku = 0 tapahtui_virhe = True while tapahtui_virhe == True: # Esitetään parametrina annettu kysymys ja tallennetaan vastaus (merkkijono) muuttujaan vastaus_str = input(kysymys + ' ') # Tarkistetaan syötteen järkevyys, virhetiedot ja arvo tallennetaan listamuuttujaan tulokset tulokset = sanity2.liukuluvuksi(vastaus_str) # Katsotaan onko virhekoodi 0, ja tallennetaan arvo muuttujaan vastaus if tulokset[0] == 0: vastaus = tulokset[2] # Tehdään raja-arvotarkistus, virhetiedot muuttujaan tarkistusviesti tarkistusviesti = sanity2.rajatarkistus(vastaus, alaraja, ylaraja) # Katsotaan onko arvo sallittujen rajojen sisällä tutkimalla virhekoodia if tarkistusviesti[0] == 0: tapahtui_virhe = False luku = vastaus else: # Jos raja-arvotarkistuksen virhekoodi ei ole 0, tulostetaan virheilmoitus print(tarkistusviesti[1]) # Jos liukulukutarkistuksen virhekoodi ei ole 0, tulostetaan virheilmoitus else: print(tulokset[1]) return luku
def kysy_liukuluku(kysymys, alaraja, ylaraja): """Kysyy käyttäjältä liukuluvun tai kokonaisluvun ja tarkistaa syötteen oikean tietotyypin ja suuruuden Args: kysymys (string): Käyttäjälle esitettävä kysymys alaraja (float): Pienin sallittu arvo ylaraja (float): Suurin sallittu arvo Returns: float: Käyttäjän syöttämä arvo liukulukuna """ # Kysytään käyttäjältä tietoa kunnes saadaan järkevä arvo luku = 0 tapahtui_virhe = True while tapahtui_virhe == True: vastaus_str = input(kysymys) tulokset = sanity2.liukuluvuksi(vastaus_str) # Katsotaan onko virhekoodi 0, ja tallennetaan arvo muuttujaan paino if tulokset[0] == 0: vastaus = tulokset[2] tarkistettu_vastaus = sanity2.rajatarkistus( vastaus, alaraja, ylaraja) # Katsotaan onko arvo sallittujen rajojen sisällä tutkimalla virhekoodia if tarkistettu_vastaus[0] == 0: tapahtui_virhe = False luku = vastaus else: # Tulostetaan virheilmoitus print(tarkistettu_vastaus[1]) # Jos virhekoodi ei ole 0, tulostetaan virheilmoitus else: print(tulokset[1]) return luku
def test_rajatarkistus_oikein(): assert sanity2.rajatarkistus(100, 20, 300) == [0, 'Arvo OK']
def test_rajatarkistus_yli(): assert sanity2.rajatarkistus( 350, 20, 300) == [6, 'Annettu arvo yli ylärajan (300).']
def test_rajatarkistus_alle(): assert sanity2.rajatarkistus( 10, 20, 300) == [5, 'Annettu arvo alle alarajan (20).']
def test_rajatarkastus_yli(): assert sanity2.rajatarkistus(350, 20, 300) == [2, 'Arvo on yli ylärajan (300)']
def test_rajatarkastus_alle(): assert sanity2.rajatarkistus(10, 20, 300) == [1, 'Arvo on alle alarajan (20)']