Advertisement
tuomasvaltanen

Untitled

Sep 12th, 2023 (edited)
916
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.83 KB | None | 0 0
  1. # Luento 3, ehtolauseet
  2. print("Tervetuloa! Tänään mm. ehtolauseita!")
  3.  
  4. # float-luvut saattavat aiheuttaa pineiä pyöristysbugeja pienillä desimaaleilla
  5. number1 = 0.1
  6. number2 = 0.2
  7. total = number1 + number2
  8.  
  9. print(total)
  10.  
  11. # suoraviivaisin tapa ratkaista => round()
  12. total = round(total, 1)
  13. print(total)
  14.  
  15. # UUSI TIEDOSTO
  16.  
  17. age = 19
  18.  
  19. # ehtolause, onko ikä alle 20?
  20. # jos on, tulostetaan ehtolauseen sisällä oleva teksti
  21. # jos ei, skipataan koko ehtolauseen sisällä oleva koodi
  22. if age < 20:
  23.     print("Olet alle 20v")
  24.  
  25. # UUSI VERSIO
  26.  
  27. age = 25
  28.  
  29. # ehtolause, onko ikä alle 20?
  30. # jos on, tulostetaan ehtolauseen sisällä oleva teksti
  31. # jos ei, skipataan koko ehtolauseen sisällä oleva koodi
  32. if age < 20:
  33.     print("Olet alle 20v")
  34.     print("Myös tämä rivi tulostetaan vain jos ikä on alle 20v!")
  35.  
  36. # tämä rivi ei kuulu enää ehtolauseen sisälle, eli tämä ajetaan aina
  37. print("Tämä rivi tulostetaan riippumatta if-lauseen toiminnasta.")
  38.  
  39. # UUSI TIEDOSTO
  40.  
  41. age = input("Syötä ikä:\n")
  42. age = int(age)
  43.  
  44. # ehtolause, onko ikä alle 20?
  45. # jos on, tulostetaan ehtolauseen sisällä oleva teksti
  46. # jos ei, mennään else-lauseeseen
  47. if age < 20:
  48.     print("Olet alle 20v")
  49. else:
  50.     print("Olet 20v tai yli")
  51.  
  52. # UUSI TIEDOSTO
  53.  
  54. age = input("Syötä ikä:\n")
  55. age = int(age)
  56.  
  57. # ehtolause, if-elif-else
  58. # if-elif-elsessä maksimissaan yksi ehto voi käynnistyä, loput skipataan
  59. if age < 20:
  60.     print("Olet alle 20v")
  61. elif age < 30:
  62.     print("Olet alle 30v")
  63. elif age < 40:
  64.     print("Olet alle 40v")
  65. else:
  66.     print("Ikäsi on jotain muuta.")
  67.  
  68. print("Kiitos ohjelman käytöstä!")
  69.  
  70.  
  71. # UUSI TIEDOSTO, useampi if-lausekokonaisuus
  72.  
  73. age = input("Syötä ikä:\n")
  74. age = int(age)
  75.  
  76. month = input("Anna kuukauden numero:\n")
  77. month = int(month)
  78.  
  79. # ehtolause, if-elif-else
  80. # if-elif-elsessä maksimissaan yksi ehto voi käynnistyä, loput skipataan
  81. if age < 20:
  82.     print("Olet alle 20v")
  83. elif age < 30:
  84.     print("Olet alle 30v")
  85. elif age < 40:
  86.     print("Olet alle 40v")
  87. else:
  88.     print("Ikäsi on jotain muuta.")
  89.  
  90. # täysin erillinen if-lause kokonaisuus
  91. # koska month-muuttuja ei liity age-muuttujaan mitenkään
  92. if month == 7:
  93.     print("Liikkeemme on heinäkuussa suljettu!")
  94.     print("Tavataan taas elokuussa!")
  95.  
  96. print("Kiitos ohjelman käytöstä!")
  97.  
  98. # UUSI TIEDOSTO
  99.  
  100. price = 200
  101. age = 17
  102.  
  103. # huom: voidaan muuttaa aiempaa muuttujaa tehokkaasti
  104. # suoraan ehtolauseiden koodista käsin!
  105. if age < 18:
  106.     price = price * 0.9
  107. else:
  108.     price = price + 4.95
  109.  
  110. print(f"Loppusumma: {price}")
  111.  
  112. # UUSI TIEDOSTO
  113.  
  114. age = input("Syötä ikä:\n")
  115. age = int(age)
  116.  
  117. # pienempi kuin
  118. if age < 30:
  119.     print("Olet alle 30v")
  120.  
  121. # suurempi kuin
  122. if age > 30:
  123.     print("Olet yli 30v")
  124.  
  125. # onko age tasan 30
  126. if age == 30:
  127.     print("Olet tasan 30v")
  128.  
  129. # negaatio, eli == täysi vastakohta
  130. if age != 30:
  131.     print("Et ole tasan 30v")
  132.  
  133. # UUSI TIEDOSTO
  134.  
  135. # kun vertailet numeromuuttujia toisiinsa
  136. # tarkista että molemmat ovat oikeasti numeromuodossa
  137. # eli joko int() tai float()
  138. number1 = input("Anna jokin numero:\n")
  139. number1 = int(number1)
  140.  
  141. number2 = 234
  142.  
  143. # verrataan numeromuuttujia tosiinsa
  144. # jos toinen on näistä muuttujista jäänyt vahingossa tekstimuotoon
  145. # voi tulla erittäin outoja bugeja
  146. if number1 > number2:
  147.     print("Käyttäjän antama numero on suurempi")
  148. else:
  149.     print("Toinen numero on suurempi")
  150.  
  151. # UUSI TIEDOSTO
  152.  
  153. # oletetaan että tämän syksyn alennuskoodi on WINTER23
  154. # kysytään käyttäjältä alennuskoodi
  155. sales_code = input("Anna alennuskoodi:\n")
  156. current_code = "WINTER23"
  157.  
  158. # tekstiä verrataan joko == tai !=
  159. if sales_code == current_code:
  160.     print("Olet oikeutettu alennukseen!")
  161. else:
  162.     print("Normaali hinta.")
  163.  
  164. # UUSI TIEDOSTO
  165.  
  166. # kysytään jokin teksti käyttäjältä
  167. drink = input("Anna jokin juoma:\n")
  168.  
  169. # joskus tarvitsee tällaisia rakenteita
  170. if drink == "maito":
  171.     print("Maidon hinta: 1€")
  172. elif drink == "kahvi":
  173.     print("Kahvipaketin hinta, 6,5€")
  174. elif drink == "mehu":
  175.     print("Mehutölkin hinta 2€")
  176. else:
  177.     print("Tuotetta ei löytynyt...")
  178.  
  179. # UUSI TIEDOSTO
  180.  
  181. # voidaan tehdä yksinkertainen polkurakenne ohjelmaan myös tekstin avulla
  182. choice = input("Oletko opiskelija vai aikuinen? (a/o)\n")
  183.  
  184. # mitä käyttäjä syötti?
  185. if choice == 'o':
  186.     print("Tämä koodi käsittelee opiskelijakohtaisen koodin.")
  187.     print("Esim. lasketaan jokin lipun hinta ym.")
  188. elif choice == 'a':
  189.     print("Tähän sitten aikuisten laskentalogiikka")
  190. else:
  191.     print("Valintaa ei tunnistettu. Käynnistä ohjelma uudelleen.")
  192.  
  193. # UUSI TIEDOSTO
  194.  
  195. number = input("Syötä numero:\n")
  196. number = int(number)
  197.  
  198. # jos jaetaan kahdella, mikä on jakojäännös?
  199. # jos on tasan 0 ====> parillinen luku, muutoin pariton
  200. if number % 2 == 0:
  201.     print("Parillinen luku!")
  202. else:
  203.     print("Pariton luku.")
  204.  
  205. # UUSI TIEDOSTO
  206.  
  207. number = input("Syötä numero:\n")
  208. number = int(number)
  209.  
  210. # jos numero on suurempi kuin 0 ja samaan aikaan pienempi kuin 30
  211. # eli jos numero on välillä 0-30
  212. if number > 0 and number < 30:
  213.     print("Numero on 0 ja 30 välillä.")
  214.  
  215. # jos numero on pienempi kuin 0
  216. # TAI numero on suurempi kuin 30
  217. # käytännössä tämä on edellisen ehdon vastakohta
  218. if number < 0 or number > 30:
  219.     print("Numero on joko alle 0 tai yli 30.")
  220.  
  221. # UUSI TIEDOSTO
  222.  
  223. number = input("Syötä numero:\n")
  224. number = int(number)
  225.  
  226. # Pythonin shorthand, eli onko number suurempi kuin 0 ja samalla pienempi kuin 30
  227. # eli onko number 0 ja 30 välillä
  228. if 0 < number < 30:
  229.     print("Numero on 0 ja 30 välillä.")
  230.  
  231. # jos numero on pienempi kuin 0
  232. # TAI numero on suurempi kuin 30
  233. # käytännössä tämä on edellisen ehdon vastakohta
  234. if number < 0 or number > 30:
  235.     print("Numero on joko alle 0 tai yli 30.")
  236.  
  237. # UUSI TIEDOSTO
  238.  
  239. age = 20
  240. city = "Tornio"
  241. student = True
  242.  
  243. # and -sanan vuoksi kaikkien ehtojen pitää täyttyä
  244. # esim. jos city == Tornio, sitten ei enää toimi
  245. if age >= 18 and city == "Rovaniemi" and student == True:
  246.     print("Aikuinen rovaniemeläinen opiskelija.")
  247.  
  248. # UUSI TIEDOSTO
  249.  
  250. age = 20
  251. city = "Tornio"
  252.  
  253. # sisennetyillä ehtolauseilla voidaan tehdä yksityiskohtaista
  254. # toimintalogiikkaa riippuen tilanteesta
  255. # tässä koodissa esim. aikuisille ja ala-ikäisille on täysin
  256. # oma koodipohja, ja aikuisille on myös erilliset koodi
  257. # eri kaupungeille
  258. if age >= 18:
  259.     print("Aikuisia koskevat terveydenhuollon ohjeet.")
  260.  
  261.     if city == "Rovaniemi":
  262.         print("Aikuisten terveydenhuolto osoitteessa Testikuja 12")
  263.  
  264.     if city == "Tornio":
  265.         print("Aikuisten terveydenhuolto osoitteessa Kokeilukatu 4")
  266.  
  267. else:
  268.     print("Alaikäisten terveydenhuolto oman koulun ohjeiden mukaan.")
  269.  
  270. # UUSI TIEDOSTO
  271.  
  272. # testimuuttujat
  273. humidity = 92
  274. temperature = 10
  275. raining = False
  276.  
  277. # jos kosteus yli 80% => raining = True
  278. if humidity > 80:
  279.     raining = True
  280.  
  281. # jos pakkasta, ei puhuta enää sateesat
  282. if temperature < 0:
  283.     raining = False
  284.  
  285. # tässä välissä voisi olla kymmeniä, jopa satoja rivejä muuta koodia
  286. # joka säätää raining-muuttujaa suuntaan tai toiseen
  287.  
  288. # tehdään loppupäätelmä booleanin perusteella
  289. if raining:
  290.     print("Sataa vettä")
  291. else:
  292.     print("Ei sada")
  293.  
  294. # UUSI TIEDOSTO
  295.  
  296. # kysytään käyttäjältä status ja lipun hinta
  297. status = input("Opiskelija vai aikuinen? (o/a)\n")
  298. price = input("Lipun alkuperäinen hinta?\n")
  299. price = float(price)
  300.  
  301. # opiskelijat saa 50% alennusta
  302. # aikuiset maksavat täyden hinnan + palvelumaksu 2.5€
  303. # paitsi jos lipun hinta yli 100 €, silloin ei palvelumaksua
  304.  
  305. if status == 'o':
  306.     # opiskelijan laskentakoodi
  307.     price = price * 0.5
  308.  
  309. elif status == 'a':
  310.     # aikuisten laskentakoodi
  311.     # pieni näppäryys, palvelumaksu lisätään vain silloin
  312.     # kuin hinta on alle 100€ (vrt. tehtävänanto ylempänä)
  313.     if price < 100:
  314.         price = price + 2.5
  315.  
  316. print(f"Lopullinen hinta: {price} €")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement