Advertisement
tuomasvaltanen

Untitled

Sep 26th, 2023 (edited)
834
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.82 KB | None | 0 0
  1. # luento 5, 26.9.2023, toistolauseet
  2. print("Tervetuloa!")
  3.  
  4. # UUSI TIEDOSTO
  5.  
  6. # for-silmukka, joka ajaa 10 kertaa
  7. # käytännössä käsketään Pythonia
  8. # ajamaan silmukan sisällä oleva koodi 10 kertaa
  9. # x on 0 ensimmäisellä kierroksella
  10. # ja 9 viimeisellä kierroksella
  11. for x in range(10):
  12.     print(f"Numero: {x}")
  13.  
  14. # UUSI TIEDOSTO
  15.  
  16. # for-silmukan laskurimuuttuja on normaali
  17. # muuttuja, ja sitä voi käyttää myös laskutoimituksissa
  18. # for-silmukka vain huolehtii cycle-muuttujan korottamisesta
  19. # automaattisesti
  20. for cycle in range(10):
  21.     number = cycle * 2
  22.     print(number)
  23.  
  24. # UUSI TIEDOSTO
  25.  
  26. start = 2017
  27. end = 2024
  28.  
  29. # raja-arvot voi laittaa myös muuttujina rangeen
  30. # tässä tapauksessa 2017 -> 2024
  31. for year in range(start, end):
  32.     print(year)
  33.  
  34. # UUSI TIEDOSTO, kokeile tätä Python Tutorissa
  35.  
  36. print("Tervetuloa!")
  37.  
  38. for cycle in range(10):
  39.     number = cycle * 2
  40.     print(number)
  41.  
  42. print("Kiitos ohjelman käytöstä!")
  43.  
  44. # UUSI TIEDOSTO
  45.  
  46. # tehdään alkuun tyhjä tekstimuuttuja, joka
  47. # rakennetaan valmiiksi silmukan avulla
  48. text = ""
  49.  
  50. # tätä kannattaa kokeilla Python Tutorissa!
  51. # silmukka, joka rakentaa text-muuttujan lennosta
  52. # alkaen vuodesta 2017, ja päättyen 2023
  53. for year in range(2017, 2024):
  54.     text = text + str(year) + "-"
  55.  
  56. # osateksti, substring, otetaan viimeinen merkki pois
  57. # eli ylimääräinen viiva jonka silmukka tuottaa
  58. text = text[:-1]
  59.  
  60. print(text)
  61.  
  62. # UUSI TIEDOSTO
  63.  
  64. # kolmas parametri on nimeltään step
  65. # eli oletuksena year kasvaa aina +1,
  66. # stepillä voi muuttaa tätä esim +2
  67. for year in range(2000, 2020, 2):
  68.     print(year)
  69.  
  70. # UUSI TIEDOSTO
  71.  
  72. print("Aloitetaan!\n")
  73.  
  74. # myös if-lauseita voidaan käyttää silmukassa
  75. # tässä tapauksessa joka toinen kierros menee
  76. # parilliseksi ja joka toinen parittomaksi
  77. for x in range(10):
  78.     if x % 2 == 0:
  79.         print(f"Parillinen! Kierros {x}")
  80.     else:
  81.         print(f"Pariton... Kierros {x}")
  82.  
  83. print()
  84. print("Valmis!")
  85.  
  86. # UUSI TIEDOSTO
  87.  
  88. # while-silmukassa laskurimuuttuja pitää luoda itse
  89. counter = 1
  90.  
  91. # niin kauan kuin counter on alle tai tasan 10
  92. # aja while-silmukan sisällä oleva koodi
  93. # huom: counteria pitää nostaa joka kierroksen lopussa
  94. # ettei tule ns. ikuinen silmukka
  95. while counter <= 10:
  96.     print(counter)
  97.  
  98.     # kasvatetaan counteria + 1 joka kierroksen lopussa
  99.     counter = counter + 1
  100.  
  101. # UUSI TIEDOSTO
  102.  
  103. print("Tervetuloa ohjelman pariin!")
  104.  
  105. # tehdään apumuuttuja, joka pitää kirjaa siitä
  106. # pidetäänkö ohjelmaa enää käynnis
  107. running = True
  108.  
  109. # ohjelman pääsilmukka, joka pitää ohjelman käynnissä
  110. # niin kauan kuin käyttäjä haluaa
  111. while running:
  112.     print("Ohjelma on käynnissä!")
  113.  
  114.     # tähän kaikki varsinainen logiikka
  115.     number = input("Anna numero:\n")
  116.     number = int(number)
  117.  
  118.     # tuplataan käyttäjän numero
  119.     total = number * 2
  120.     print(f"Numero tuplattuna: {total}")
  121.     print()
  122.  
  123.     choice = input("Haluatko jatkaa ohjelman käyttöä? (k/e)\n")
  124.  
  125.     # pieni kikka: pakotetaan choice pieniksi kirjaimiksi, jolloin
  126.     # myös iso E toimii!
  127.     if choice.lower() == 'e':
  128.         running = False
  129.  
  130.  
  131. # tämä ajetaan vasta kun while-silmukkaa lopettaa toiminnan
  132. print("Kiitos ohjelman käytöstä!")
  133.  
  134. # UUSI TIEDOSTO
  135.  
  136. # tehdään ensin ylätason pääsilmukka
  137. for x in range(3):
  138.     print(f"PÄÄSILMUKKA: x = {x}")
  139.  
  140.     # alisilmukka, tämä ajetaan 3 kertaa koko silmukka
  141.     # koska pääsilmukkaa ajetaan 3 kertaa
  142.     # alisilmukka taas ajaa oman koodinsa 5 kertaa
  143.     for y in range(5):
  144.         print(f"\t\talisilmukka: y = {x}")
  145.  
  146. # UUSI TIEDOSTO
  147. # tätä kannattaa kokeilla myös Python Tutorissa!
  148. print("Ajetaan tilausraportti:")
  149.  
  150. # pääsilmukka käy läpi tilaukset tilaukset (3 kpl)
  151. for order in range(3):
  152.     print(f"KÄSITELLÄÄN TILAUSTA nro = {order}")
  153.  
  154.     # alisilmukka käsittelee käsittelyssä olevan TILAUKSEN
  155.     # sisällä olevat TUOTTEET, oletuksena nyt että joka tilauksessa
  156.     # on tasan 5 tuotetta
  157.     for product in range(5):
  158.         print(f"\tKäsitellään tilauksen {order} tuotetta {product}!")
  159.  
  160. print("Valmis, kiitos ohjelman käytöstä!")
  161.  
  162. # UUSI TIEDOSTO
  163.  
  164. print("Aloitetaan ohjelma!")
  165. print()
  166.  
  167. # viisi henkilö silmukassa
  168. for person in range(5):
  169.     print(f"Henkilön {person + 1} vuoro puhua!")
  170.  
  171.     # jokaisen henkilön pitää sanoa vuorollaan numerot 1-4
  172.     for number in range(4):
  173.         print(f"\tHenkilö {person + 1} sanoo numeron {number + 1}!")
  174.  
  175. print("Kaikki ovat puhuneet!")
  176.  
  177. # UUSI TIEDOSTO
  178.  
  179. print("Aloitetaan!")
  180.  
  181. # silmukka 0 - 9
  182. # tavoite, kun tulee x:n arvo 6 vastaan
  183. # tuote on löytynyt
  184. for x in range(10):
  185.     # jos x on tasan 6 -> katkaistaan silmukka
  186.     if x == 6:
  187.         print("Data löytyi, lopetetaan etsintä!\n")
  188.         break
  189.  
  190.     print(x)
  191.  
  192. print("Valmis!")
  193.  
  194. # UUSI TIEDOSTO
  195.  
  196. print("Aloitetaan!")
  197.  
  198. # silmukka 0 - 9
  199. # tavoite, kun tulee x:n arvo 6 vastaan
  200. # skipataan koko kierros
  201. for x in range(10):
  202.     # jos x on tasan 6 -> katkaistaan silmukka
  203.     if x == 6:
  204.         print("Huono arvo, skipataan kierros!")
  205.         continue
  206.  
  207.     print(x)
  208.  
  209. print("Valmis!")
  210.  
  211. # UUSI TIEDOSTO
  212.  
  213. total = 0
  214.  
  215. # annetaan Pythonin tehdä työt
  216. # ja kysyä käyttäjältä numero
  217. # 10 kertaa peräkkäin, lisätään aina total-muuttujaan
  218. for x in range(10):
  219.     number = int(input("Anna numero:\n"))
  220.     total = total + number
  221.  
  222. print(total)
  223.  
  224. # UUSI TIEDOSTO
  225.  
  226. # voidaan myös antaa käyttäjän vaikuttaa kierrosten lukumäärään
  227. # HUOM! älä koskaan yritä reagoida käyttäjän
  228. # lukumäärään if-lauseella, koska se on lähtökohtaisesti loputon
  229. # suo ehtolauseita. (paitsi jos vaihtoehtoja on esim. vain 3)
  230. cycles = input("Montako lukua kysytään?\n")
  231. cycles = int(cycles)
  232.  
  233. total = 0
  234.  
  235. # ajetaan silmukkaa niin monta kertaa kuin käyttäjä halusi (cycles)
  236. for x in range(cycles):
  237.     number = int(input("Anna numero:\n"))
  238.     total = total + number
  239.  
  240. print(total)
  241.  
  242. # UUSI TIEDOSTO
  243.  
  244. # korkoa korolle -laskuri, silmukoilla, ei matemaattista kaavaa
  245.  
  246. # korkolaskuri
  247. # vuosikorko 7%, kuinka paljon on rahaa tilillä 10v päästä?
  248. # lisätään joka vuosi aina 2000 € lisää
  249.  
  250.  
  251. start_money = 15000
  252. yearly_money = 2000
  253.  
  254. # korkoprosentti, eli 7% korotus => 1.07
  255. interest = 1.07
  256.  
  257. total = start_money
  258.  
  259. # tehdään silmukka, mikä käy kaikki vuodet, ja kasvattaa korkopottia sitä mukaa
  260. for year in range(10):
  261.     # lisätään joka vuoden alussa 2000€ tilille
  262.     # jos halutaan että raha lisätään vasta vuoden lopussa
  263.     # aseta tämä korkolaskun jälkeen
  264.     total = total + yearly_money
  265.  
  266.     # lasketaan vuoden korko
  267.     total = total * interest
  268.  
  269. # koko rahasumma lopuksi, sis. kaikki sijoitukset
  270. total = round(total, 2)
  271.  
  272. # paljon tuli voittoa
  273. new_money = total - start_money - (10 * yearly_money)
  274.  
  275. print(f"Rahaa tilillä 10v jälkeen: {total} €")
  276. print(f"Tienattiin 10v jälkeen:: {new_money} €")
  277.  
  278. # UUSI TIEDOSTO
  279.  
  280. # VERSIO 2 KORKOLASKURISTA
  281.  
  282. # kuinka monta vuotta kestää, että pääsemme sijoituksilla tiettyyn voittoon
  283.  
  284. start_money = 15000
  285. yearly_money = 2000
  286.  
  287. # tavoite
  288. target_savings = 150000
  289.  
  290. interest = 1.07
  291.  
  292. # apumuuttujat silmukkaa varten
  293. total = start_money
  294. winnings = 0
  295.  
  296. # vuodet 1 - 30
  297. for year in range(1 , 31):
  298.     # lisätään vuosittainen sijoitus
  299.     total = total + yearly_money
  300.  
  301.     # korkoa korolle
  302.     total = total * interest
  303.  
  304.     # kuinka paljon voittoa tähän vuoteen mennessä
  305.     winnings = total - start_money - (year * yearly_money)
  306.  
  307.     # tarkistetaan ollaanko jo tavoitteessa, jos ollaan
  308.     # break -> koska ei tarvitse enää jatkaa laskemista
  309.     if winnings >= target_savings:
  310.         print(f"Tavoitteeseen päästiin vuonna: {year}")
  311.         break
  312.  
  313.  
  314. # jos kävi niin ettei päästy tavoitteeseen, ilmoitetaan käyttäjälle
  315. if winnings < target_savings:
  316.     print("Tavoite ei onnistu tällä aikavälillä ja sijoituksilla.")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement