Advertisement
tuomasvaltanen

Untitled

Oct 24th, 2024 (edited)
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.88 KB | None | 0 0
  1. # koodipaja 5, 24.10.2024
  2. print("Tervetuloa!")
  3.  
  4. # UUSI TIEDOSTO
  5.  
  6. # idea: tulostetaan numeroita käyttäjältä 50:n numeron pompseissa
  7. # aina kun on tulostettu 50 numeroa, kysytään käyttäjältä, haluaako käyttäjä jatkaa
  8. # (eli haluaako käyttäjä jatkaa)
  9. # jos haluaa jatkaa, tulostetaan seuraavat 50 tai loput mitä jäljellä on
  10.  
  11. # huom: continue -komento on nimensä puolesta hieman harhaanjohtava
  12. # sillä se ei varsinaisesti liity ohjelman jatkamiseen, vaan sillä
  13. # vaikutetaan silmukan toimintaan
  14.  
  15. # continue -komento ainoastaan skippaa tämän hetkisen kierroksen, ja
  16. # JATKAA seuraavasta kierroksesta
  17.  
  18. # käytetään yleensä väärässä muodossa olevan datan skippaamiseen silmukassa
  19. # esim. 500 tuotetaa, ja jostain tuotteesta puuttuu hintatieto
  20. # => continue eli skipataan kyseinen tuote koska hinta puuttuu
  21.  
  22. # muuttujat, mihin asti numeroita tulostetaan
  23. # ja mikä on ensimmäinen numero
  24. numbers_to_print = 125
  25. current_number = 0
  26.  
  27. # niin kauan kuin tämänhetkinen numero
  28. # on alle tavoitteen (125), tulosta numero
  29. while current_number <= numbers_to_print:
  30.     print(current_number)
  31.  
  32.     # aina 50:n numeron kohdalla, kysytään käyttäjältä
  33.     # halutaanko lisää numeroita
  34.     # jos halutaan, jatketaan normaalisti
  35.     # jos ei haluta, lopetetaan ohjelma
  36.  
  37.     # huom: current_number != 0 siksi, ettei % 50 pysähdy heti 0:n kohdalla
  38.     # koska 0 % 50 on myöskin 0
  39.     if current_number % 50 == 0 and current_number != 0:
  40.         answer = input("Jatketaanko tulostamista? (k/e)\n")
  41.  
  42.         # jos käyttäjä vastasi "e" => lopeta silmukka
  43.         if answer.lower() == "e":
  44.             break
  45.  
  46.     # muista korottaa numeroa, ettei tule ikuinen silmukka
  47.     current_number = current_number + 1
  48.  
  49. # UUSI TIEDOSTO
  50.  
  51. # VERSIO 2 KORKOLASKURISTA, kokeile Python Tutor
  52.  
  53. # kuinka monta vuotta kestää, että pääsemme sijoituksilla tiettyyn voittoon
  54. start_money = 15000
  55. yearly_money = 2000
  56.  
  57. # korko+ per vuosi, 7%
  58. interest = 1.07
  59.  
  60. # säästötavoite
  61. target_savings = 150000
  62.  
  63. # apumuuttujat silmukkaa varten
  64. total = start_money
  65. winnings = 0
  66.  
  67. # vuodet, 1 -30
  68. # aloitetaan 1:stä, jotta winnings-muuttujan
  69. # laskukaava kertoo vuodet oikein (eikä esim. ensimmäisenä
  70. # vuonna kerrota 0:lla)
  71. for year in range(1, 31):
  72.     # lisätään vuosittainen sijoitus
  73.     total = total + yearly_money
  74.  
  75.     # korkoa korolle
  76.     total = total * interest
  77.  
  78.     # paljon voittoa tähän mennessä
  79.     # eli vähennetään kaikista rahoista sijoitukset
  80.     winnings = total - start_money - (year * yearly_money)
  81.  
  82.     # tarkistetaan ollaanko jo tavoitteessa
  83.     # jos ollaan => break -> koska ei ole enää syytä jatkaa koodia
  84.     if winnings >= target_savings:
  85.         print(f"Tavoitteeseen päästiin vuonna: {year}")
  86.         break
  87.  
  88.  
  89. # jos kävi niin, ettei päästy tavoitteeseen, ilmoitetaan käyttäjälle
  90. if winnings < target_savings:
  91.     print("Tavoite ei ole mahdollinen annetulla aikavälillä ja sijoituksilla.")
  92.  
  93. # UUSI TIEDOSTO
  94.  
  95. # Fibonaccin lukujonossa lasketaan yhteen kaksi edellistä lukua,
  96. # ja siitä saadaan seuraava luku. Jonon 9 ensimmäistä numeroa ovat:
  97. # 0, 1, 1, 2, 3, 5, 8, 13, 21
  98.  
  99. # TEHTÄVÄNANTO: kysytään käyttäjältä numero, eli kuinka monennen
  100. # Fibonaccin luvun hän haluaa nähdä, ja sen jälkeen lasketaan
  101. # tämä luku for-silmukalla
  102.  
  103. # Fibonaccissa luku on aina kahden edellisen summa:
  104. # 0, 1, 1, 2, 3, 5, 8, 13, 21
  105. # tämän takia esim.
  106. # 5. luku on 1 + 2 = 3
  107. # 6. luku on 2 + 3 = 5
  108. # 7. luku on 3 + 5 = 8
  109. # 8. luku on 5 + 8 = 13
  110. # x. luku on vanha + uusi = fibonaccin luku
  111.  
  112. # pidetään näissä muuttujissa kirjaa
  113. # mikä on laskukaavan vanha ja uusi luku
  114. # ensimmäiset kaksi lukua ovat 0 ja 1
  115. old_number = 0
  116. new_number = 1
  117.  
  118. # annetaan jokin alkuarvo fibonaccille,
  119. # tämä ajetaan silmukassa myöhemmin yli
  120. # fibonaccin luku alussa on 1
  121. fibonacci = 1
  122.  
  123. # kysytään käyttäjältä monesko luku halutaan, int
  124. choice = input("Monennenko Fibonaccin luvun haluat nähdä?\n")
  125.  
  126. # pitää ottaa 2 pois kierrosten määrästä, koska fibonaccin
  127. # kaksi ensimmäistä lukua ovat jo alussa tiedossa
  128. # "old_number" ja "new_number" -muuttujat
  129. choice = int(choice) - 2
  130.  
  131. # for-silmukka joka laskee niin kauan uutta Fibonaccin
  132. # lukua kuin choice-muuttuja määrää
  133.  
  134. for number in range(choice):
  135.     print("Uusi kierros alkaa!")
  136.  
  137.     # päivitetään fibonacci tälle kierrokselle
  138.     # ja tulostetaan tekstiä joka näyttää tämän hetkisen tilanteen
  139.     fibonacci = old_number + new_number
  140.     print(f"Fibonacci nyt: {old_number} + {new_number} = {fibonacci}")
  141.  
  142.     # päivitetään old_number ja new_number
  143.     # alkuperäinen new_umber on nyt old_number
  144.     # ja tämänhetkinen fibonacci on uusi new_number
  145.     old_number = new_number
  146.     new_number = fibonacci
  147.  
  148.     print(f"Tämän kierroksen jälkeen: vanha luku = {old_number}, uusi luku = {new_number}\n")
  149.  
  150. print(f"Fibonaccin luku = {fibonacci}")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement