Advertisement
tuomasvaltanen

Untitled

Sep 24th, 2024 (edited)
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.22 KB | None | 0 0
  1. # luento 24.9.2024, lisää ehtolauseita
  2.  
  3. # helppo tapa, jolla vertailla lukuvälejä
  4. # mutta tarkista aina kaikki vertailut
  5. # että ne ovat oikein, ERITYISESTI RAJA-ARVOT
  6. # esim. 2004, 2008, 2012
  7. year = input("Syötä vuosiluku:\n")
  8. year = int(year)
  9.  
  10. # verrataan vuosiraja-arvoihin
  11. if 2000 < year < 2004:
  12.     print("2000-2004")
  13. elif 2004 <= year < 2008:
  14.     print("2004-2008")
  15. elif 2008 <= year < 2012:
  16.     print("2008-2012")
  17. else:
  18.     print("Vääränlainen vuosi.")
  19.  
  20. # UUSI TIEDOSTO
  21.  
  22. # nämä voi korvata inputeilla myös!
  23. age = 22
  24. city = "Tornio"
  25.  
  26. # helpoin tapa tehdä ehtolauseita on purkaa tehtävanto osiin:
  27. # jos käyttäjä on 18v tai yli
  28. # ==> tulostetaan hänen kotikaupunkinsa mukainen ohjeistus terveydenhuoltoon
  29. if age >= 18:
  30.     # tässä vaiheessa tiedetään, että käyttäjä on 18v tai yli
  31.     # seuraavaksi pitää selvittää minkä kaupungin ohjeet tulostetaan
  32.     if city == "Rovaniemi":
  33.         print("Aikuisten terveydenhuolto on osoitteessa Testikuja 12")
  34.     elif city == "Tornio":
  35.         print("Aikuisten terveydenhuolto on osoitteessa Kokeilukatu 4")
  36.  
  37. else:
  38.     print("Alaikäisten terveydenhuolto oman koulun ohjeiden mukaan.")
  39.  
  40. # UUSI TIEDOSTO
  41.  
  42. # opiskelijat saa 50% alennusta
  43. # muut asiakkaat maksavat täyden hinnan + palvelumaksu 2.5€
  44. # paitsi jos lipun hinta on yli 100 €, silloin ei palvelumaksua
  45.  
  46. # vaihe 1: kysytään tarvittavat muuttujat, muutetaan hinta desimaalimuotoon
  47. status = input("Opiskelija vai aikuinen? (o/a)\n")
  48. price = input("Lipun alkuperäinen hinta:\n")
  49. price = float(price)
  50.  
  51. # vaihe 2: muutetaan hintaa vaadittavan logiikan mukaisesti (ks. ylempää)
  52.  
  53. # jos opiskelija, silloin 50% alennus
  54. if status == "o":
  55.     price = price * 0.5
  56. elif status == "a":
  57.     # jos aikuinen, lisätään palvelumaksu 2.5€
  58.     # PAITSI jos summa on yli 100€, ei palvelumaksua
  59.     if price < 100:
  60.         price = price + 2.5
  61.  
  62. # oli hinta mikä tahansa (ylläolevien ehtolauseiden johdosta)
  63. # pyöristetään ja tulostetaan lopullinen hinta
  64. price = round(price, 2)
  65. print(f"Lopullinen hinta: {price} €")
  66.  
  67. # UUSI TIEDOSTO
  68.  
  69. # testimuuttujat
  70. humidity = 92
  71. temperature = 7
  72. raining = False
  73.  
  74. # jos kosteus yli 80% => raining = True
  75. if humidity > 80:
  76.     raining = True
  77.  
  78. # jos on pakkasta, ei ole kyse enää sateesta
  79. if temperature < 0:
  80.     raining = False
  81.  
  82. # tässä välissä voisi olla kymmeniä tai jopa satoja
  83. # rivejä koodia, joka säätää raining-muuttujaa suuntaan tai toiseen
  84. # riippuen tilanteesta
  85.  
  86. # ...oli koodia kuinka paljon tahansa, loppuosio on aika lailla aina sama:
  87. # if raining on sama kuin if raining == True
  88. # if not raining on sama kuin if raining == False
  89. if raining:
  90.     print("Sataa vettä.")
  91. else:
  92.     print("Ei sada.")
  93.  
  94.  
  95. # UUSI TIEDOSTO
  96.  
  97. # 1. Tee ohjelma, joka tervehtii käyttäjää annetun kellonajan perusteella.
  98. # Pyöristä käytettävä tuntitieto kokonaislukuun.
  99. # Vastaa käyttäjälle seuraavan logiikan mukaisesti:
  100.  
  101. # Jos kellonaika on 05 - 11 : vastaa "Hyvää huomenta"
  102. # Jos kellonaika on 12 - 17 : vastaa "Hyvää päivää"
  103. # Jos kellonaika on 18 - 21 : vastaa "Hyvää iltaa"
  104. # Jos kellonaika on 22 - 04 : vastaa "Hyvää yötä"
  105.  
  106. # kysytään käyttäjältä tämänhetkinen tunti, muutetaan kokonaislukuun
  107. hour = input("Syötä valitsemasi tunti:\n")
  108. hour = int(hour)
  109.  
  110. # tehdään ehtolauseet jokaiselle raja-arvolle
  111. # riippuen tilanteesta ja joskus on myös makuasia,
  112. # kannattaako viimeisen ehdon olla elif vai else
  113. if 5 <= hour <= 11:
  114.     print("Hyvää huomenta!")
  115. elif 12 <= hour <= 17:
  116.     print("Hyvää päivää!")
  117. elif 18 <= hour <= 21:
  118.     print("Hyvää iltaa!")
  119. else:
  120.     print("Hyvää yötä!")
  121.  
  122. # UUSI TIEDOSTO
  123.  
  124. # VERSIO 2!
  125.  
  126. # 1. Tee ohjelma, joka tervehtii käyttäjää annetun kellonajan perusteella.
  127. # Pyöristä käytettävä tuntitieto kokonaislukuun.
  128. # Vastaa käyttäjälle seuraavan logiikan mukaisesti:
  129.  
  130. # Jos kellonaika on 05 - 11 : vastaa "Hyvää huomenta"
  131. # Jos kellonaika on 12 - 17 : vastaa "Hyvää päivää"
  132. # Jos kellonaika on 18 - 21 : vastaa "Hyvää iltaa"
  133. # Jos kellonaika on 22 - 04 : vastaa "Hyvää yötä"
  134.  
  135. # Lisäominaisuus:
  136. # Jos käyttäjä ei syötä mitään kellonaikaa, käytä automaattisesti tämänhetkistä
  137. # kellonaikaa (esim. datetime-moduuli). Jos käyttäjä valitsi automaattisen kellonajan,
  138. # ilmoita käyttäjälle "Valitaan tunti automaattisesti".
  139.  
  140. from datetime import datetime
  141.  
  142. # kysytään käyttäjältä tämänhetkinen tunti, muutetaan kokonaislukuun
  143. hour = input("Syötä valitsemasi tunti:\n")
  144.  
  145. # JOS käyttäjä syötti tyhjän tekstin, korvataan tuntitieto
  146. # datetime-moduulin avulla
  147. if hour == "":
  148.     timestamp = datetime.now()
  149.     hour = timestamp.hour
  150.     print(f"Tyhjä teksti! Valitaan tunti automaattisesti: {hour}")
  151.  
  152. # oli hour mikä tahansa, muutetaan se vihdoin kokonaisluvuksi
  153. hour = int(hour)
  154.  
  155. # tehdään ehtolauseet jokaiselle raja-arvolle
  156. # riippuen tilanteesta ja joskus on myös makuasia,
  157. # kannattaako viimeisen ehdon olla elif vai else
  158. if 5 <= hour <= 11:
  159.     print("Hyvää huomenta!")
  160. elif 12 <= hour <= 17:
  161.     print("Hyvää päivää!")
  162. elif 18 <= hour <= 21:
  163.     print("Hyvää iltaa!")
  164. else:
  165.     print("Hyvää yötä!")
  166.  
  167. # UUSI TIEDOSTO, ESIMERKKI 2
  168.  
  169. # 2. Tee yksinkertainen laskinohjelma, jossa käyttäjä voi tehdä seuraavat
  170. # operaatiot: +, -, * ja /. Kysy alussa käyttäjältä kaksi eri numeroa float-muodossa,
  171. # ja kysy lopuksi minkä operaation hän haluaa näiden lukujen välillä suorittaa.
  172.  
  173. # Kun käyttäjä on valinnut numerot ja operaation, suorita valittu operaatio numeroiden välillä.
  174.  
  175. # Jos käyttäjä valitsee jakolaskun, tarkista ettei käyttäjän toinen numero ole 0.
  176. # Jos käyttäjä kuitenkin syötti toisena numerona nollan, ilmoita käyttäjälle että
  177. # nollalla ei voi jakaa. Jos käyttäjä valitsee operaation mitä ei ole olemassa,
  178. # ilmoita käyttäjälle: "Vääränlainen operaatio"
  179.  
  180. # Tulosta lopputulos pyöristettynä yhteen desimaaliin.
  181.  
  182. # Vaihe 1: kysytään tarvittavat muuttujat ja muunnetaan numeroiksi jos tarvitsee
  183. number1 = input("Syötä ensimmäinen numero:\n")
  184. number2 = input("Syötä toinen numero:\n")
  185. number1 = float(number1)
  186. number2 = float(number2)
  187. operation = input("Mikä laskutoimitus (+, -, * vai /)?\n")
  188.  
  189. # alustetaan muuttuja, joka pitää kirjaa laskutoimituksen lopputuloksesta
  190. result = 0
  191.  
  192. if operation == "+":
  193.     result = number1 + number2
  194. elif operation == "-":
  195.     result = number1 - number2
  196. elif operation == "*":
  197.     result = number1 * number2
  198. elif operation == "/":
  199.     # tehdään lisätarkistus, että käyttäjä
  200.     # ei yritä vahingossa jakaa nollalla
  201.     if number2 == 0:
  202.         print("Nollalla ei voi jakaa!")
  203.     else:
  204.         # jos toinen numero EI OLLUT nolla,
  205.         # voidaan jatkaa jakolaskua normaalisti
  206.         result = number1 / number2
  207. else:
  208.     # käyttäjä syötti jonkun operaation
  209.     # joka ei täsmää yhteenkään ylempään if/elif -lauseeseen
  210.     print("Vääränlainen operaatio! (Syötä +, -, * tai /)")
  211.  
  212.  
  213. # tähän voisi lisätä vielä yhden if-lauseen:
  214. # => jos tapahtui virhe, älä tulosta result-muuttujaa jne jne.
  215. # kaikki on tässä vaiheessa ok, ja lopputulos on laskettu
  216. # (tai sitten virheviesti on tulostettu)
  217. result = round(result, 1)
  218. print(f"Tulos: {result}")
  219.  
  220.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement