Advertisement
tuomasvaltanen

Untitled

Oct 29th, 2024 (edited)
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.46 KB | None | 0 0
  1. # Johdatus ohjelmointiin, luento 8, kokoelmat ja lisää toistolauseita, 29.10.2024
  2. print("Tervetuloa!")
  3.  
  4. # UUSI TIEDOSTO
  5.  
  6. # tehdään lista tuotteista
  7. products = ["Pölynimuri", "Kahvinkeitin", "Jääkaappi", "Pakastin"]
  8.  
  9. # tämä on ns. raakamuoto, voi käyttää debuggauksesta
  10. # tai jos muutoin haluaa nopeasti tietää mitä listan sisällä on
  11. # ei näytetä yleensä käyttäjälle, koska tämä on liian raaka formaatti
  12. # print(products)
  13.  
  14. # haetaan yksittäinen tuote ylläolevasta listasta
  15. # indeksi 2, eli kolmas tuote
  16. text = products[2]
  17. print(text)
  18.  
  19. # UUSI TIEDOSTO
  20.  
  21. # tehdään lista tuotteista
  22. products = ["Pölynimuri", "Kahvinkeitin", "Jääkaappi", "Pakastin"]
  23.  
  24. # kysytään käyttäjältä kuinka mones tuote halutaan listasta nähdä
  25. # HUOM! indeksi on aina kokonaisuluku, eli int()
  26. choice = input("Monennenko tuotteen haluat nähdä?\n")
  27. choice = int(choice)
  28.  
  29. # haetaan käyttäjän antaman indeksin mukainen tuote
  30. # huomaa kuinka koodissa ei ole yhtään ehtolausetta
  31. # vaikka ohjelma toimii eri tavalla riippuen
  32. # siitä mitä käyttäjä syötti
  33. text = products[choice]
  34. print(text)
  35.  
  36. # UUSI TIEDOSTO
  37.  
  38. # tehdään lista tuotteista
  39. products = ["Pölynimuri", "Kahvinkeitin", "Jääkaappi", "Pakastin"]
  40.  
  41. # kysytään käyttäjältä kuinka mones tuote halutaan listasta nähdä
  42. # HUOM! indeksi on aina kokonaisuluku, eli int()
  43. choice = input("Monennenko tuotteen haluat nähdä?\n")
  44. choice = int(choice)
  45.  
  46. # len()-funktio toimii sekä kokoelmille että teksteille
  47. # eli kuinka monta elementtiä listassa on
  48. amount = len(products)
  49.  
  50. # jos käyttäjän antama indeksi on alle tuotteiden lukumäärä
  51. # ja samalla indeksi on 0 tai suurempi
  52. # eli esim. jos tuotteita on 4, eli onko indeksi välillä
  53. # 0 - 3
  54. if choice < amount and choice >= 0:
  55.     # haetaan käyttäjän antaman indeksin mukainen tuote
  56.     # huomaa kuinka koodissa ei ole yhtään ehtolausetta
  57.     # vaikka ohjelma toimii eri tavalla riippuen
  58.     # siitä mitä käyttäjä syötti
  59.     text = products[choice]
  60.     print(text)
  61. else:
  62.     print("Tällä indeksillä ei ole tuotetta!")
  63.  
  64. # UUSI TIEDOSTO
  65. # kokeile Python Tutorissa tätä!
  66.  
  67. # tehdään lista tuotteista
  68. products = ["Pölynimuri", "Kahvinkeitin", "Jääkaappi",
  69.             "Pakastin", "Matkapuhelin", "Kynnysmatto"]
  70.  
  71. # silmukoidaan tuotelista läpi
  72. # ensimmäinen kierros sisältää ensimmäisen tuotteen
  73. # viimeinen kierros sisältää viimeisen tuotteen
  74. for p in products:
  75.     print(p)
  76.  
  77. print("\nOhjelma valmis!")
  78.  
  79. # UUSI TIEDOSTO
  80.  
  81. # tehdään lista tuotteista
  82. products = ["Pölynimuri", "Kahvinkeitin", "Jääkaappi",
  83.             "Pakastin", "Matkapuhelin", "Kynnysmatto"]
  84.  
  85. # tallennetaan tuotteiden lukumäärä
  86. # täsäs esimerkissä 6
  87. amount = len(products)
  88.  
  89. # silmukoidaan tuotelista läpi käyttämällä rangea
  90. # tuotteiden lukumäärän kanssa
  91. for index in range(amount):
  92.     p = products[index]
  93.     print(f"{index + 1}: {p}")
  94.  
  95. # huom: älä laita len(products) suoraan rangen sisälle
  96. # sillä monessa ohjelmointikielessä koodi silloin laskee
  97. # listan sisällön lukumäärän niin monta kertaa kuin silmukka
  98. # tekee kierroksia. esim. jos olisi 500000 tuotetta
  99. # => koodi laskee listan koon 500000 kertaa
  100. # mikä on turhaa, koska listan koko on joka kierroksella sama
  101.  
  102. # UUSI TIEDOSTO
  103.  
  104. # tuple, joka sisältää viikonpäivät
  105. weekdays = ("Maanantai", "Tiistai", "Keskiviikko", "Torstai", "Perjantai", "Lauantai", "Sunnuntai")
  106.  
  107. # kysytään käyttäjältä viikonpäivän indeksi
  108. # jotta saadaan täsmäämään käyttäjän numero kokoelman kanssa => -1
  109. choice = input("Kuinka mones viikonpäivä?\n")
  110. choice = int(choice) - 1
  111.  
  112. # haetaan vastaava päivä ja tulostetaan
  113. text = weekdays[choice]
  114. print(text)
  115.  
  116. # UUSI TIEDOSTO
  117.  
  118. # tehdään lista tuotteista
  119. products = ["Pölynimuri", "Kahvinkeitin", "Jääkaappi",
  120.             "Pakastin", "Matkapuhelin", "Kynnysmatto"]
  121.  
  122. # kysytään käyttäjältä monesko tuote muutetaan
  123. choice = input("Monesko tuote muutetaan?\n")
  124. choice = int(choice)
  125.  
  126. # pyydetään käyttäjältä uuden tuotteen nimi
  127. new_product = input("Korvaavan tuotteen nimi?\n")
  128.  
  129. # vaihdetaan käyttäjän antamassa indeksissä
  130. # tuotteen nimeksi uusi arvo
  131. products[choice] = new_product
  132.  
  133. # testitulostus, muuttuiko tuote
  134. print(products)
  135.  
  136. # UUSI TIEDOSTO
  137.  
  138. # luodaan dictionary, sisältää yhden henkilön tiedot
  139. person = {
  140.     "name": "Herra Hakkarainen",
  141.     "age": 47,
  142.     "city": "Korvatunturi"
  143. }
  144.  
  145. # dictionaryn kohdalla ei yleensä käytetä silmukkaa
  146. # vaan tulostetaan se mitä halutaan suoraan avaimilla
  147. # ikään kuin ne olisivat muuttujia
  148. print("Henkilön nimi:")
  149. print(person["name"])
  150. print()
  151.  
  152. print("Henkilön ikä:")
  153. print(person["age"])
  154.  
  155. # dictionaryssä sama sääntö, että harvoin tulostetaan
  156. # koko dictionary raakamuodossa
  157.  
  158. # UUSI TIEDOSTO
  159.  
  160. codes = ["TILAUS1234_X35867_2024", "TILAUS123454_X32345867_2023",
  161.          "YFGSUDYGSSUIAYDHGDSAJHGDSAJHSGDAJHSDAG_3476437823647832647836478324_2024"]
  162.  
  163. # split():n etu on siinä,
  164. # että ei ole väliä missä kohdin tekstiä alaviivat (tai muut erotinmerkit)
  165. for code in codes:
  166.     # tämä koodi toimii aina, kunhan jokaisessa
  167.     # tilauskoodissa on kaksi alaviivaa jossakin päin tekstiä
  168.     parts = code.split("_")
  169.  
  170.     # puretaan parts-lista muuttujiin
  171.     first = parts[0]
  172.     second = parts[1]
  173.     year = parts[2]
  174.  
  175.     # tulostetaan tiedot
  176.     print(first)
  177.     print(second)
  178.     print(year)
  179.     print()
  180.  
  181. # UUSI TIEDOSTO
  182.  
  183. # lista kaupunkeja
  184. cities = ["oulu", "turku", "rovaniemi", "helsinki", "tampere", "pori"]
  185.  
  186. # tehdään kaksi uutta tyhjää listaa tai "ämpäriä" valmiiksi
  187. # pitkille ja lyhyille kaupungin nimille oma lista
  188. long_cities = []
  189. short_cities = []
  190.  
  191. # käydään läpi kaupungit yksitellen ja vuorotellen
  192. # ja asetetaan jokainen kaupunki joko pitkään tai lyhyeen
  193. # kaupungin nimen listaan
  194. for city in cities:
  195.     if len(city) < 6:
  196.         short_cities.append(city)
  197.     else:
  198.         long_cities.append(city)
  199.  
  200.  
  201. # tulostetaan testimielessä sisällöt
  202. print("Pitkät kaupungin nimet:")
  203. print(long_cities)
  204. print()
  205.  
  206. print("Lyhyet kaupungin nimet:")
  207. print(short_cities)
  208.  
  209. # UUSI TIEDOSTO
  210.  
  211. foods = ["leipä", "porkkana", "tomaatti"]
  212. drinks = ["tee", "kahvi", "mehu"]
  213.  
  214. # Pythonissa voidaan yhdistää listat ihan +-merkillä!
  215. everything = foods + drinks
  216. print(everything)
  217.  
  218. # UUSI TIEDOSTO
  219.  
  220. # esimerkki, josa listojen näppäryys näkyy loistavasti
  221. # huom: ei yhtään ehtolausetta tai silmukkaa
  222. grades = [5, 8, 7, 9, 10, 7, 8, 6, 10, 9]
  223.  
  224. # keskiarvon määritelmä on tämä:
  225. # lukujen summa / lukujen määrällä
  226. total = sum(grades)
  227. amount = len(grades)
  228.  
  229. # lasketaan keskiarvo
  230. average = total / amount
  231. average = round(average, 2)
  232. print(average)
  233.  
  234. # UUSI TIEDOSTO
  235.  
  236. berries = ["Mustikka", "Mansikka", "Puolukka", "Hilla", "karpalo"]
  237. print(berries)
  238.  
  239. # jos on tarkoitus sortata data ennen silmukkaa
  240. # aja sort() vain kerran ennen silmukkaa, koska muutoin
  241. # koodi järjestää datan useita kertoja aakkosjärjestykseen
  242. # ja vain yksi kerta riittää
  243.  
  244. # sort() -> järjestää alkuperäisen listan aakkosjärjestykseen
  245. # berries.sort()
  246. # print(berries)
  247.  
  248. # sorted() => tekee uuden kopion listasta, jolloin
  249. # jää alkuperäinen lista ja sortattu lista talteen samalla kertaa
  250. # sorted_berries = sorted(berries)
  251. # print(sorted_berries)
  252.  
  253. # jotta koodi toimii myös pienillä ja isoilla alkukirjaimilla
  254. # käytetään lambdaa siihen että muutetaan vertailun ajaksi
  255. # kaikki kirjaimet ISOIKSI
  256. berries.sort(key=lambda v: v.upper())
  257. print(berries)
  258.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement