Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # luento 3, ehtolauseet, osa 1
- # float-tietotyypin ongelmallisuudet
- # tämä kooditiedosto esittelee float-tietotyypin ongelmia tietyillä luvuilla
- from decimal import Decimal
- import math
- # Tämä esimerkki havainnollistaa erään tympeän ominaisuuden, joka koskee float-tietotyyppiä
- number1 = float(0.1)
- number2 = float(0.2)
- print(f"Tavanomaiset floatit/desimaaliluvut: {number1} + {number2} =")
- print(number1 + number2)
- # suoraviivaisin ratkaisu => pyöristä arvo siihen tarkkuutee mitä tarvitsee
- total = number1 + number2
- total = round(total, 1)
- print(total)
- # yksi tapa välttää tämä ongelma on käyttää Pythonin decimal -kirjastoa
- # huom: muista alkuun import decimal
- number3 = Decimal("0.1")
- number4 = Decimal("0.2")
- print(f"Decimal-kirjaston desimaaliluvut: {number3} + {number4} =")
- print(number3+number4)
- # UUSI TIEDOSTO
- age = 19
- # ehtolause, onko ikä alle 20v?
- # jos on => tulostetaan ehtolauseen sisällä oleva teksti
- # jos ei => skipataan koko ehtolauseen sisällä oleva koodi
- if age < 20:
- print("Olet alle 20v")
- # UUSI TIEDOSTO
- age = 25
- # ehtolause, onko ikä alle 20v?
- # jos on => tulostetaan ehtolauseen sisällä oleva teksti
- # jos ei => skipataan koko ehtolauseen sisällä oleva koodi
- if age < 20:
- print("Olet alle 20v")
- print("Myös tämä rivi tulostetaan vain ehdon täyttyessä!")
- print("Tämä koodirivi ei enää kuulu if-lauseen sisälle, eli koodi jatkuu normaalisti.")
- # UUSI TIEDOSTO
- # kysytään käyttäjän ikä
- age = input("Syötä ikäsi:\n")
- age = int(age)
- # ehtolause, onko ikä alle 20v?
- # jos on = tulostetaan if-lauseen sisällä oleva teksti
- # jos ei -> mennään else-lausekkeen koodiin
- if age < 20:
- print("Olet alle 20v")
- else:
- print("Olet 20v tai yli")
- # UUSI TIEDOSTO
- # kysytään käyttäjän ikä
- age = input("Syötä ikäsi:\n")
- age = int(age)
- # ehtolause, if-elif-else
- # if-elif-elsessä maksimissaan yksi ehtolause
- # voi käynnistyä, loput skipataan
- if age < 20:
- print("Olet alle 20v")
- elif age < 30:
- print("Olet alle 30v")
- elif age < 40:
- print("Olet alle 40v")
- else:
- print("Ikäsi on jotain muuta.")
- print("Kiitos ohjelman käytöstä!")
- # UUSI TIEDOSTO
- # kysytään käyttäjän ikä
- age = input("Syötä ikäsi:\n")
- age = int(age)
- # kysytään käyttäjän asiointikuukausi
- month = input("Minä kuukautena haluat asioida liikkeessä?\n")
- month = int(month)
- # ehtolause, if-elif-else
- # if-elif-elsessä maksimissaan yksi ehtolause
- # voi käynnistyä, loput skipataan
- if age < 20:
- print("Olet alle 20v")
- elif age < 30:
- print("Olet alle 30v")
- elif age < 40:
- print("Olet alle 40v")
- else:
- print("Ikäsi on jotain muuta.")
- # täysin erillinen if-lausekokonaisuus
- # koska month-muuttuja ei liity age -muuttujaan tässä tapauksessa mitenkään
- if month == 7:
- print("Liikkeemme on heinäkuussa suljettu!")
- print("Tavataan taas elokuussa!")
- print("Kiitos ohjelman käytöstä!")
- # UUSI TIEDOSTO
- # muuttujat kokonaishinnan laskemista varten
- price = 200
- age = 24
- # huom: voidaan muutta aiempaa muuttujaa näppärästi
- # suoraan ehtolauseiden koodista käsin!
- if age < 18:
- # jos ikä alle 18v, päivitetään
- # alkuperäinen hinta siten että 10% alennus
- price = price * 0.9
- else:
- # muussa tapauksessa (eli 18v tai yli)
- price = price + 4.95
- # huomaa, kuinka price-muuttuja elää if-elsessä
- # riippuen tilanteesta. voimme joka tapauksessa
- # lopuksi tulostaa price-muuttujan, oli arvo mikä tahansa
- print(f"Loppusumma: {price} €")
- # UUSI TIEDOSTO
- # käyttäjän ikä
- age = input("Syötä ikä:\n")
- age = int(age)
- # jos age pienempi kuin
- if age < 30:
- print("Olet alle 30v")
- # onko age yli 30
- # suositeltavaa käyttää aina versiota
- # jossa otetaan myös tasaluku mukaan!
- if age >= 30:
- print("Olet tasan 30v tai yli")
- # onko age tasan 30
- if age == 30:
- print("Olet tasan 30v")
- # negaatio, eli == täysi vastakohta
- # eli "onko ikä JOTAIN MUUTA kuin TASAN 30v
- if age != 30:
- print("Olet jonkin muun ikäinen kuin tasan 30v")
- # UUSI TIEDOSTO
- # kun vertailet numeromuuttujia toisiinsa
- # tarkista että molemmat ovat oikeasti numeromuodossa
- # eli joko int() tai float ()
- # oletuksena inputista tulee aina tekstityyppistä dataa
- # vaikka olisi syötetty numero
- number1 = input("Anna jokin numero:\n")
- number1 = int(number1)
- number2 = 234
- # verrataan kahta eri numeromuuttujaa toisiinsa
- # jos toinen näistä on vahingossa jäänyt tekstimuotoon
- # voi tulla erittäin outoja bugeja
- if number1 > number2:
- print("Käyttäjän antama numero on suurempi!")
- else:
- print("Toinen numero on suurempi...")
- # UUSI TIEDOSTO
- # kysytään käyttäjältä alennuskoodi
- # ja katsotaan täsmääkö koodiin talletettu koodi sen kanssa
- sales_code = input("Anna alennuskoodi:\n")
- current_code = "WINTER24"
- # tekstidatan kanssa (string) yleensä käytetään vain
- # == tai !=
- # muiden ehtojen käyttämisessä ei usein ole mieltä
- # esim. "banaani" > "paloauto" ei tarkoita mitään
- if sales_code == current_code:
- print("Olet oikeutettu alennukseen!")
- else:
- print("Normaali hinta, ei alennusta.")
- # UUSI TIEDOSTO
- # kysytään teksti käyttäjältä
- drink = input("Anna jokin juoma:\n")
- # joskus tarvitsee tällaisia rakenteita
- if drink == "maito":
- print("Maidon hinta: 1€")
- elif drink == "kahvi":
- print("Kahvipaketin hinta: 6,99€")
- elif drink == "mehu":
- print("Mehutölkin hinta: 2€")
- else:
- print("Tuotetta ei löytynyt.")
- # UUSI TIEDOSTO
- # tyypillinen ohjausrakenne monessa viikkotehtävässä
- choice = input("Oletko opiskelija vai aikuinen? (a/o)\n")
- # mitä käyttäjä syötti?
- if choice == "o":
- print("Tämä koodi käsittelee opiskelijakohtaisen koodin.")
- print("Esim. jonkin lipun hinnan laskeminen ym.")
- elif choice == "a":
- print("Tähän sitten aikuisten laskentalogiikka.")
- else:
- print("Valintaa ei tunnistettu. Käynnistä ohjelma uudelleen.")
- # UUSI TIEDOSTO
- number = input("Syötä numero:\n")
- number = int(number)
- # klassikko: onko tietty luku parillinen luku
- if number % 2 == 0:
- print("Parillinen luku!")
- else:
- print("Pariton luku!")
- # UUSI TIEDOSTO
- number = input("Syötä numero:\n")
- number = int(number)
- # jos numero on suurempi kuin 0
- # JA SAMAAN AIKAAN
- # numer on pienempi kuin 30
- # eli toisin sanoen, onko numero välillä 0-30
- if number > 0 and number < 30:
- print("Numero on 0 ja 30 välillä (suurempi kuin 0, pienempi kuin 30)")
- # or -sanalla : onko numero alle 0 tai yli 30
- # eli käytännössä numero ei saa osua välille 0-30
- if number < 0 or number > 30:
- print("Numero on joko alle 0 tai yli 30. Eli rajojen ulkopuolella.")
- # UUSI TIEDOSTO
- number = input("Syötä numero:\n")
- number = int(number)
- # jos numero on suurempi kuin 0
- # JA SAMAAN AIKAAN
- # numer on pienempi kuin 30
- # eli toisin sanoen, onko numero välillä 0-30
- if 0 <= number <= 30:
- print("Numero on 0 ja 30 välillä!")
- # UUSI TIEDOSTO
- # ohjelman muuttujat
- age = 20
- city = "Rovaniemi"
- student = True
- # voidaan tehdä myös tarkkoja täsmäehtoja, jos ohjelma niin vaatii
- if age >= 18 and city == "Rovaniemi" and student == True:
- print("Aikuinen rovaniemeläinen opiskelija.")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement