Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # luento 24.9.2024, lisää ehtolauseita
- # helppo tapa, jolla vertailla lukuvälejä
- # mutta tarkista aina kaikki vertailut
- # että ne ovat oikein, ERITYISESTI RAJA-ARVOT
- # esim. 2004, 2008, 2012
- year = input("Syötä vuosiluku:\n")
- year = int(year)
- # verrataan vuosiraja-arvoihin
- if 2000 < year < 2004:
- print("2000-2004")
- elif 2004 <= year < 2008:
- print("2004-2008")
- elif 2008 <= year < 2012:
- print("2008-2012")
- else:
- print("Vääränlainen vuosi.")
- # UUSI TIEDOSTO
- # nämä voi korvata inputeilla myös!
- age = 22
- city = "Tornio"
- # helpoin tapa tehdä ehtolauseita on purkaa tehtävanto osiin:
- # jos käyttäjä on 18v tai yli
- # ==> tulostetaan hänen kotikaupunkinsa mukainen ohjeistus terveydenhuoltoon
- if age >= 18:
- # tässä vaiheessa tiedetään, että käyttäjä on 18v tai yli
- # seuraavaksi pitää selvittää minkä kaupungin ohjeet tulostetaan
- if city == "Rovaniemi":
- print("Aikuisten terveydenhuolto on osoitteessa Testikuja 12")
- elif city == "Tornio":
- print("Aikuisten terveydenhuolto on osoitteessa Kokeilukatu 4")
- else:
- print("Alaikäisten terveydenhuolto oman koulun ohjeiden mukaan.")
- # UUSI TIEDOSTO
- # opiskelijat saa 50% alennusta
- # muut asiakkaat maksavat täyden hinnan + palvelumaksu 2.5€
- # paitsi jos lipun hinta on yli 100 €, silloin ei palvelumaksua
- # vaihe 1: kysytään tarvittavat muuttujat, muutetaan hinta desimaalimuotoon
- status = input("Opiskelija vai aikuinen? (o/a)\n")
- price = input("Lipun alkuperäinen hinta:\n")
- price = float(price)
- # vaihe 2: muutetaan hintaa vaadittavan logiikan mukaisesti (ks. ylempää)
- # jos opiskelija, silloin 50% alennus
- if status == "o":
- price = price * 0.5
- elif status == "a":
- # jos aikuinen, lisätään palvelumaksu 2.5€
- # PAITSI jos summa on yli 100€, ei palvelumaksua
- if price < 100:
- price = price + 2.5
- # oli hinta mikä tahansa (ylläolevien ehtolauseiden johdosta)
- # pyöristetään ja tulostetaan lopullinen hinta
- price = round(price, 2)
- print(f"Lopullinen hinta: {price} €")
- # UUSI TIEDOSTO
- # testimuuttujat
- humidity = 92
- temperature = 7
- raining = False
- # jos kosteus yli 80% => raining = True
- if humidity > 80:
- raining = True
- # jos on pakkasta, ei ole kyse enää sateesta
- if temperature < 0:
- raining = False
- # tässä välissä voisi olla kymmeniä tai jopa satoja
- # rivejä koodia, joka säätää raining-muuttujaa suuntaan tai toiseen
- # riippuen tilanteesta
- # ...oli koodia kuinka paljon tahansa, loppuosio on aika lailla aina sama:
- # if raining on sama kuin if raining == True
- # if not raining on sama kuin if raining == False
- if raining:
- print("Sataa vettä.")
- else:
- print("Ei sada.")
- # UUSI TIEDOSTO
- # 1. Tee ohjelma, joka tervehtii käyttäjää annetun kellonajan perusteella.
- # Pyöristä käytettävä tuntitieto kokonaislukuun.
- # Vastaa käyttäjälle seuraavan logiikan mukaisesti:
- # Jos kellonaika on 05 - 11 : vastaa "Hyvää huomenta"
- # Jos kellonaika on 12 - 17 : vastaa "Hyvää päivää"
- # Jos kellonaika on 18 - 21 : vastaa "Hyvää iltaa"
- # Jos kellonaika on 22 - 04 : vastaa "Hyvää yötä"
- # kysytään käyttäjältä tämänhetkinen tunti, muutetaan kokonaislukuun
- hour = input("Syötä valitsemasi tunti:\n")
- hour = int(hour)
- # tehdään ehtolauseet jokaiselle raja-arvolle
- # riippuen tilanteesta ja joskus on myös makuasia,
- # kannattaako viimeisen ehdon olla elif vai else
- if 5 <= hour <= 11:
- print("Hyvää huomenta!")
- elif 12 <= hour <= 17:
- print("Hyvää päivää!")
- elif 18 <= hour <= 21:
- print("Hyvää iltaa!")
- else:
- print("Hyvää yötä!")
- # UUSI TIEDOSTO
- # VERSIO 2!
- # 1. Tee ohjelma, joka tervehtii käyttäjää annetun kellonajan perusteella.
- # Pyöristä käytettävä tuntitieto kokonaislukuun.
- # Vastaa käyttäjälle seuraavan logiikan mukaisesti:
- # Jos kellonaika on 05 - 11 : vastaa "Hyvää huomenta"
- # Jos kellonaika on 12 - 17 : vastaa "Hyvää päivää"
- # Jos kellonaika on 18 - 21 : vastaa "Hyvää iltaa"
- # Jos kellonaika on 22 - 04 : vastaa "Hyvää yötä"
- # Lisäominaisuus:
- # Jos käyttäjä ei syötä mitään kellonaikaa, käytä automaattisesti tämänhetkistä
- # kellonaikaa (esim. datetime-moduuli). Jos käyttäjä valitsi automaattisen kellonajan,
- # ilmoita käyttäjälle "Valitaan tunti automaattisesti".
- from datetime import datetime
- # kysytään käyttäjältä tämänhetkinen tunti, muutetaan kokonaislukuun
- hour = input("Syötä valitsemasi tunti:\n")
- # JOS käyttäjä syötti tyhjän tekstin, korvataan tuntitieto
- # datetime-moduulin avulla
- if hour == "":
- timestamp = datetime.now()
- hour = timestamp.hour
- print(f"Tyhjä teksti! Valitaan tunti automaattisesti: {hour}")
- # oli hour mikä tahansa, muutetaan se vihdoin kokonaisluvuksi
- hour = int(hour)
- # tehdään ehtolauseet jokaiselle raja-arvolle
- # riippuen tilanteesta ja joskus on myös makuasia,
- # kannattaako viimeisen ehdon olla elif vai else
- if 5 <= hour <= 11:
- print("Hyvää huomenta!")
- elif 12 <= hour <= 17:
- print("Hyvää päivää!")
- elif 18 <= hour <= 21:
- print("Hyvää iltaa!")
- else:
- print("Hyvää yötä!")
- # UUSI TIEDOSTO, ESIMERKKI 2
- # 2. Tee yksinkertainen laskinohjelma, jossa käyttäjä voi tehdä seuraavat
- # operaatiot: +, -, * ja /. Kysy alussa käyttäjältä kaksi eri numeroa float-muodossa,
- # ja kysy lopuksi minkä operaation hän haluaa näiden lukujen välillä suorittaa.
- # Kun käyttäjä on valinnut numerot ja operaation, suorita valittu operaatio numeroiden välillä.
- # Jos käyttäjä valitsee jakolaskun, tarkista ettei käyttäjän toinen numero ole 0.
- # Jos käyttäjä kuitenkin syötti toisena numerona nollan, ilmoita käyttäjälle että
- # nollalla ei voi jakaa. Jos käyttäjä valitsee operaation mitä ei ole olemassa,
- # ilmoita käyttäjälle: "Vääränlainen operaatio"
- # Tulosta lopputulos pyöristettynä yhteen desimaaliin.
- # Vaihe 1: kysytään tarvittavat muuttujat ja muunnetaan numeroiksi jos tarvitsee
- number1 = input("Syötä ensimmäinen numero:\n")
- number2 = input("Syötä toinen numero:\n")
- number1 = float(number1)
- number2 = float(number2)
- operation = input("Mikä laskutoimitus (+, -, * vai /)?\n")
- # alustetaan muuttuja, joka pitää kirjaa laskutoimituksen lopputuloksesta
- result = 0
- if operation == "+":
- result = number1 + number2
- elif operation == "-":
- result = number1 - number2
- elif operation == "*":
- result = number1 * number2
- elif operation == "/":
- # tehdään lisätarkistus, että käyttäjä
- # ei yritä vahingossa jakaa nollalla
- if number2 == 0:
- print("Nollalla ei voi jakaa!")
- else:
- # jos toinen numero EI OLLUT nolla,
- # voidaan jatkaa jakolaskua normaalisti
- result = number1 / number2
- else:
- # käyttäjä syötti jonkun operaation
- # joka ei täsmää yhteenkään ylempään if/elif -lauseeseen
- print("Vääränlainen operaatio! (Syötä +, -, * tai /)")
- # tähän voisi lisätä vielä yhden if-lauseen:
- # => jos tapahtui virhe, älä tulosta result-muuttujaa jne jne.
- # kaikki on tässä vaiheessa ok, ja lopputulos on laskettu
- # (tai sitten virheviesti on tulostettu)
- result = round(result, 1)
- print(f"Tulos: {result}")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement