Advertisement
tuomasvaltanen

Untitled

Sep 17th, 2024 (edited)
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.24 KB | None | 0 0
  1. # luento 3, ehtolauseet, osa 1
  2.  
  3. # float-tietotyypin ongelmallisuudet
  4.  
  5. # tämä kooditiedosto esittelee float-tietotyypin ongelmia tietyillä luvuilla
  6. from decimal import Decimal
  7. import math
  8.  
  9. # Tämä esimerkki havainnollistaa erään tympeän ominaisuuden, joka koskee float-tietotyyppiä
  10. number1 = float(0.1)
  11. number2 = float(0.2)
  12.  
  13. print(f"Tavanomaiset floatit/desimaaliluvut: {number1} + {number2} =")
  14. print(number1 + number2)
  15.  
  16. # suoraviivaisin ratkaisu => pyöristä arvo siihen tarkkuutee mitä tarvitsee
  17. total = number1 + number2
  18. total = round(total, 1)
  19. print(total)
  20.  
  21. # yksi tapa välttää tämä ongelma on käyttää Pythonin decimal -kirjastoa
  22. # huom: muista alkuun import decimal
  23. number3 = Decimal("0.1")
  24. number4 = Decimal("0.2")
  25. print(f"Decimal-kirjaston desimaaliluvut: {number3} + {number4} =")
  26. print(number3+number4)
  27.  
  28. # UUSI TIEDOSTO
  29.  
  30. age = 19
  31.  
  32. # ehtolause, onko ikä alle 20v?
  33. # jos on => tulostetaan ehtolauseen sisällä oleva teksti
  34. # jos ei => skipataan koko ehtolauseen sisällä oleva koodi
  35. if age < 20:
  36.     print("Olet alle 20v")
  37.  
  38. # UUSI TIEDOSTO
  39.  
  40. age = 25
  41.  
  42. # ehtolause, onko ikä alle 20v?
  43. # jos on => tulostetaan ehtolauseen sisällä oleva teksti
  44. # jos ei => skipataan koko ehtolauseen sisällä oleva koodi
  45. if age < 20:
  46.     print("Olet alle 20v")
  47.     print("Myös tämä rivi tulostetaan vain ehdon täyttyessä!")
  48.  
  49. print("Tämä koodirivi ei enää kuulu if-lauseen sisälle, eli koodi jatkuu normaalisti.")
  50.  
  51. # UUSI TIEDOSTO
  52.  
  53. # kysytään käyttäjän ikä
  54. age = input("Syötä ikäsi:\n")
  55. age = int(age)
  56.  
  57. # ehtolause, onko ikä alle 20v?
  58. # jos on = tulostetaan if-lauseen sisällä oleva teksti
  59. # jos ei -> mennään else-lausekkeen koodiin
  60. if age < 20:
  61.     print("Olet alle 20v")
  62. else:
  63.     print("Olet 20v tai yli")
  64.  
  65. # UUSI TIEDOSTO
  66.  
  67. # kysytään käyttäjän ikä
  68. age = input("Syötä ikäsi:\n")
  69. age = int(age)
  70.  
  71. # ehtolause, if-elif-else
  72. # if-elif-elsessä maksimissaan yksi ehtolause
  73. # voi käynnistyä, loput skipataan
  74. if age < 20:
  75.     print("Olet alle 20v")
  76. elif age < 30:
  77.     print("Olet alle 30v")
  78. elif age < 40:
  79.     print("Olet alle 40v")
  80. else:
  81.     print("Ikäsi on jotain muuta.")
  82.  
  83. print("Kiitos ohjelman käytöstä!")
  84.  
  85. # UUSI TIEDOSTO
  86.  
  87. # kysytään käyttäjän ikä
  88. age = input("Syötä ikäsi:\n")
  89. age = int(age)
  90.  
  91. # kysytään käyttäjän asiointikuukausi
  92. month = input("Minä kuukautena haluat asioida liikkeessä?\n")
  93. month = int(month)
  94.  
  95. # ehtolause, if-elif-else
  96. # if-elif-elsessä maksimissaan yksi ehtolause
  97. # voi käynnistyä, loput skipataan
  98. if age < 20:
  99.     print("Olet alle 20v")
  100. elif age < 30:
  101.     print("Olet alle 30v")
  102. elif age < 40:
  103.     print("Olet alle 40v")
  104. else:
  105.     print("Ikäsi on jotain muuta.")
  106.  
  107. # täysin erillinen if-lausekokonaisuus
  108. # koska month-muuttuja ei liity age -muuttujaan tässä tapauksessa mitenkään
  109. if month == 7:
  110.     print("Liikkeemme on heinäkuussa suljettu!")
  111.     print("Tavataan taas elokuussa!")
  112.  
  113. print("Kiitos ohjelman käytöstä!")
  114.  
  115. # UUSI TIEDOSTO
  116.  
  117. # muuttujat kokonaishinnan laskemista varten
  118. price = 200
  119. age = 24
  120.  
  121. # huom: voidaan muutta aiempaa muuttujaa näppärästi
  122. # suoraan ehtolauseiden koodista käsin!
  123. if age < 18:
  124.     # jos ikä alle 18v, päivitetään
  125.     # alkuperäinen hinta siten että 10% alennus
  126.     price = price * 0.9
  127. else:
  128.     # muussa tapauksessa (eli 18v tai yli)
  129.     price = price + 4.95
  130.  
  131. # huomaa, kuinka price-muuttuja elää if-elsessä
  132. # riippuen tilanteesta. voimme joka tapauksessa
  133. # lopuksi tulostaa price-muuttujan, oli arvo mikä tahansa
  134. print(f"Loppusumma: {price} €")
  135.  
  136. # UUSI TIEDOSTO
  137.  
  138. # käyttäjän ikä
  139. age = input("Syötä ikä:\n")
  140. age = int(age)
  141.  
  142. # jos age pienempi kuin
  143. if age < 30:
  144.     print("Olet alle 30v")
  145.  
  146. # onko age yli 30
  147. # suositeltavaa käyttää aina versiota
  148. # jossa otetaan myös tasaluku mukaan!
  149. if age >= 30:
  150.     print("Olet tasan 30v tai yli")
  151.  
  152. # onko age tasan 30
  153. if age == 30:
  154.     print("Olet tasan 30v")
  155.    
  156. # negaatio, eli == täysi vastakohta
  157. # eli "onko ikä JOTAIN MUUTA kuin TASAN 30v
  158. if age != 30:
  159.     print("Olet jonkin muun ikäinen kuin tasan 30v")
  160.  
  161. # UUSI TIEDOSTO
  162.  
  163. # kun vertailet numeromuuttujia toisiinsa
  164. # tarkista että molemmat ovat oikeasti numeromuodossa
  165. # eli joko int() tai float ()
  166. # oletuksena inputista tulee aina tekstityyppistä dataa
  167. # vaikka olisi syötetty numero
  168. number1 = input("Anna jokin numero:\n")
  169. number1 = int(number1)
  170.  
  171. number2 = 234
  172.  
  173. # verrataan kahta eri numeromuuttujaa toisiinsa
  174. # jos toinen näistä on vahingossa jäänyt tekstimuotoon
  175. # voi tulla erittäin outoja bugeja
  176. if number1 > number2:
  177.     print("Käyttäjän antama numero on suurempi!")
  178. else:
  179.     print("Toinen numero on suurempi...")
  180.  
  181. # UUSI TIEDOSTO
  182.  
  183. # kysytään käyttäjältä alennuskoodi
  184. # ja katsotaan täsmääkö koodiin talletettu koodi sen kanssa
  185. sales_code = input("Anna alennuskoodi:\n")
  186. current_code = "WINTER24"
  187.  
  188. # tekstidatan kanssa (string) yleensä käytetään vain
  189. # == tai !=
  190. # muiden ehtojen käyttämisessä ei usein ole mieltä
  191. # esim. "banaani" > "paloauto" ei tarkoita mitään
  192. if sales_code == current_code:
  193.     print("Olet oikeutettu alennukseen!")
  194. else:
  195.     print("Normaali hinta, ei alennusta.")
  196.  
  197. # UUSI TIEDOSTO
  198.  
  199. # kysytään teksti käyttäjältä
  200. drink = input("Anna jokin juoma:\n")
  201.  
  202. # joskus tarvitsee tällaisia rakenteita
  203. if drink == "maito":
  204.     print("Maidon hinta: 1€")
  205. elif drink == "kahvi":
  206.     print("Kahvipaketin hinta: 6,99€")
  207. elif drink == "mehu":
  208.     print("Mehutölkin hinta: 2€")
  209. else:
  210.     print("Tuotetta ei löytynyt.")
  211.  
  212. # UUSI TIEDOSTO
  213.  
  214. # tyypillinen ohjausrakenne monessa viikkotehtävässä
  215. choice = input("Oletko opiskelija vai aikuinen? (a/o)\n")
  216.  
  217. # mitä käyttäjä syötti?
  218. if choice == "o":
  219.     print("Tämä koodi käsittelee opiskelijakohtaisen koodin.")
  220.     print("Esim. jonkin lipun hinnan laskeminen ym.")
  221. elif choice == "a":
  222.     print("Tähän sitten aikuisten laskentalogiikka.")
  223. else:
  224.     print("Valintaa ei tunnistettu. Käynnistä ohjelma uudelleen.")
  225.  
  226. # UUSI TIEDOSTO
  227.  
  228. number = input("Syötä numero:\n")
  229. number = int(number)
  230.  
  231. # klassikko: onko tietty luku parillinen luku
  232. if number % 2 == 0:
  233.     print("Parillinen luku!")
  234. else:
  235.     print("Pariton luku!")
  236.  
  237. # UUSI TIEDOSTO
  238.  
  239. number = input("Syötä numero:\n")
  240. number = int(number)
  241.  
  242. # jos numero on suurempi kuin 0
  243. # JA SAMAAN AIKAAN
  244. # numer on pienempi kuin 30
  245. # eli toisin sanoen, onko numero välillä 0-30
  246. if number > 0 and number < 30:
  247.     print("Numero on 0 ja 30 välillä (suurempi kuin 0, pienempi kuin 30)")
  248.  
  249.  
  250. # or -sanalla : onko numero alle 0 tai yli 30
  251. # eli käytännössä numero ei saa osua välille 0-30
  252. if number < 0 or number > 30:
  253.     print("Numero on joko alle 0 tai yli 30. Eli rajojen ulkopuolella.")
  254.  
  255. # UUSI TIEDOSTO
  256.  
  257. number = input("Syötä numero:\n")
  258. number = int(number)
  259.  
  260. # jos numero on suurempi kuin 0
  261. # JA SAMAAN AIKAAN
  262. # numer on pienempi kuin 30
  263. # eli toisin sanoen, onko numero välillä 0-30
  264. if 0 <= number <= 30:
  265.     print("Numero on 0 ja 30 välillä!")
  266.  
  267. # UUSI TIEDOSTO
  268.  
  269. # ohjelman muuttujat
  270. age = 20
  271. city = "Rovaniemi"
  272. student = True
  273.  
  274. # voidaan tehdä myös tarkkoja täsmäehtoja, jos ohjelma niin vaatii
  275. if age >= 18 and city == "Rovaniemi" and student == True:
  276.     print("Aikuinen rovaniemeläinen opiskelija.")
  277.  
  278.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement