Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Johdatus ohjelmointiin, luento 8, kokoelmat ja lisää toistolauseita, 29.10.2024
- print("Tervetuloa!")
- # UUSI TIEDOSTO
- # tehdään lista tuotteista
- products = ["Pölynimuri", "Kahvinkeitin", "Jääkaappi", "Pakastin"]
- # tämä on ns. raakamuoto, voi käyttää debuggauksesta
- # tai jos muutoin haluaa nopeasti tietää mitä listan sisällä on
- # ei näytetä yleensä käyttäjälle, koska tämä on liian raaka formaatti
- # print(products)
- # haetaan yksittäinen tuote ylläolevasta listasta
- # indeksi 2, eli kolmas tuote
- text = products[2]
- print(text)
- # UUSI TIEDOSTO
- # tehdään lista tuotteista
- products = ["Pölynimuri", "Kahvinkeitin", "Jääkaappi", "Pakastin"]
- # kysytään käyttäjältä kuinka mones tuote halutaan listasta nähdä
- # HUOM! indeksi on aina kokonaisuluku, eli int()
- choice = input("Monennenko tuotteen haluat nähdä?\n")
- choice = int(choice)
- # haetaan käyttäjän antaman indeksin mukainen tuote
- # huomaa kuinka koodissa ei ole yhtään ehtolausetta
- # vaikka ohjelma toimii eri tavalla riippuen
- # siitä mitä käyttäjä syötti
- text = products[choice]
- print(text)
- # UUSI TIEDOSTO
- # tehdään lista tuotteista
- products = ["Pölynimuri", "Kahvinkeitin", "Jääkaappi", "Pakastin"]
- # kysytään käyttäjältä kuinka mones tuote halutaan listasta nähdä
- # HUOM! indeksi on aina kokonaisuluku, eli int()
- choice = input("Monennenko tuotteen haluat nähdä?\n")
- choice = int(choice)
- # len()-funktio toimii sekä kokoelmille että teksteille
- # eli kuinka monta elementtiä listassa on
- amount = len(products)
- # jos käyttäjän antama indeksi on alle tuotteiden lukumäärä
- # ja samalla indeksi on 0 tai suurempi
- # eli esim. jos tuotteita on 4, eli onko indeksi välillä
- # 0 - 3
- if choice < amount and choice >= 0:
- # haetaan käyttäjän antaman indeksin mukainen tuote
- # huomaa kuinka koodissa ei ole yhtään ehtolausetta
- # vaikka ohjelma toimii eri tavalla riippuen
- # siitä mitä käyttäjä syötti
- text = products[choice]
- print(text)
- else:
- print("Tällä indeksillä ei ole tuotetta!")
- # UUSI TIEDOSTO
- # kokeile Python Tutorissa tätä!
- # tehdään lista tuotteista
- products = ["Pölynimuri", "Kahvinkeitin", "Jääkaappi",
- "Pakastin", "Matkapuhelin", "Kynnysmatto"]
- # silmukoidaan tuotelista läpi
- # ensimmäinen kierros sisältää ensimmäisen tuotteen
- # viimeinen kierros sisältää viimeisen tuotteen
- for p in products:
- print(p)
- print("\nOhjelma valmis!")
- # UUSI TIEDOSTO
- # tehdään lista tuotteista
- products = ["Pölynimuri", "Kahvinkeitin", "Jääkaappi",
- "Pakastin", "Matkapuhelin", "Kynnysmatto"]
- # tallennetaan tuotteiden lukumäärä
- # täsäs esimerkissä 6
- amount = len(products)
- # silmukoidaan tuotelista läpi käyttämällä rangea
- # tuotteiden lukumäärän kanssa
- for index in range(amount):
- p = products[index]
- print(f"{index + 1}: {p}")
- # huom: älä laita len(products) suoraan rangen sisälle
- # sillä monessa ohjelmointikielessä koodi silloin laskee
- # listan sisällön lukumäärän niin monta kertaa kuin silmukka
- # tekee kierroksia. esim. jos olisi 500000 tuotetta
- # => koodi laskee listan koon 500000 kertaa
- # mikä on turhaa, koska listan koko on joka kierroksella sama
- # UUSI TIEDOSTO
- # tuple, joka sisältää viikonpäivät
- weekdays = ("Maanantai", "Tiistai", "Keskiviikko", "Torstai", "Perjantai", "Lauantai", "Sunnuntai")
- # kysytään käyttäjältä viikonpäivän indeksi
- # jotta saadaan täsmäämään käyttäjän numero kokoelman kanssa => -1
- choice = input("Kuinka mones viikonpäivä?\n")
- choice = int(choice) - 1
- # haetaan vastaava päivä ja tulostetaan
- text = weekdays[choice]
- print(text)
- # UUSI TIEDOSTO
- # tehdään lista tuotteista
- products = ["Pölynimuri", "Kahvinkeitin", "Jääkaappi",
- "Pakastin", "Matkapuhelin", "Kynnysmatto"]
- # kysytään käyttäjältä monesko tuote muutetaan
- choice = input("Monesko tuote muutetaan?\n")
- choice = int(choice)
- # pyydetään käyttäjältä uuden tuotteen nimi
- new_product = input("Korvaavan tuotteen nimi?\n")
- # vaihdetaan käyttäjän antamassa indeksissä
- # tuotteen nimeksi uusi arvo
- products[choice] = new_product
- # testitulostus, muuttuiko tuote
- print(products)
- # UUSI TIEDOSTO
- # luodaan dictionary, sisältää yhden henkilön tiedot
- person = {
- "name": "Herra Hakkarainen",
- "age": 47,
- "city": "Korvatunturi"
- }
- # dictionaryn kohdalla ei yleensä käytetä silmukkaa
- # vaan tulostetaan se mitä halutaan suoraan avaimilla
- # ikään kuin ne olisivat muuttujia
- print("Henkilön nimi:")
- print(person["name"])
- print()
- print("Henkilön ikä:")
- print(person["age"])
- # dictionaryssä sama sääntö, että harvoin tulostetaan
- # koko dictionary raakamuodossa
- # UUSI TIEDOSTO
- codes = ["TILAUS1234_X35867_2024", "TILAUS123454_X32345867_2023",
- "YFGSUDYGSSUIAYDHGDSAJHGDSAJHSGDAJHSDAG_3476437823647832647836478324_2024"]
- # split():n etu on siinä,
- # että ei ole väliä missä kohdin tekstiä alaviivat (tai muut erotinmerkit)
- for code in codes:
- # tämä koodi toimii aina, kunhan jokaisessa
- # tilauskoodissa on kaksi alaviivaa jossakin päin tekstiä
- parts = code.split("_")
- # puretaan parts-lista muuttujiin
- first = parts[0]
- second = parts[1]
- year = parts[2]
- # tulostetaan tiedot
- print(first)
- print(second)
- print(year)
- print()
- # UUSI TIEDOSTO
- # lista kaupunkeja
- cities = ["oulu", "turku", "rovaniemi", "helsinki", "tampere", "pori"]
- # tehdään kaksi uutta tyhjää listaa tai "ämpäriä" valmiiksi
- # pitkille ja lyhyille kaupungin nimille oma lista
- long_cities = []
- short_cities = []
- # käydään läpi kaupungit yksitellen ja vuorotellen
- # ja asetetaan jokainen kaupunki joko pitkään tai lyhyeen
- # kaupungin nimen listaan
- for city in cities:
- if len(city) < 6:
- short_cities.append(city)
- else:
- long_cities.append(city)
- # tulostetaan testimielessä sisällöt
- print("Pitkät kaupungin nimet:")
- print(long_cities)
- print()
- print("Lyhyet kaupungin nimet:")
- print(short_cities)
- # UUSI TIEDOSTO
- foods = ["leipä", "porkkana", "tomaatti"]
- drinks = ["tee", "kahvi", "mehu"]
- # Pythonissa voidaan yhdistää listat ihan +-merkillä!
- everything = foods + drinks
- print(everything)
- # UUSI TIEDOSTO
- # esimerkki, josa listojen näppäryys näkyy loistavasti
- # huom: ei yhtään ehtolausetta tai silmukkaa
- grades = [5, 8, 7, 9, 10, 7, 8, 6, 10, 9]
- # keskiarvon määritelmä on tämä:
- # lukujen summa / lukujen määrällä
- total = sum(grades)
- amount = len(grades)
- # lasketaan keskiarvo
- average = total / amount
- average = round(average, 2)
- print(average)
- # UUSI TIEDOSTO
- berries = ["Mustikka", "Mansikka", "Puolukka", "Hilla", "karpalo"]
- print(berries)
- # jos on tarkoitus sortata data ennen silmukkaa
- # aja sort() vain kerran ennen silmukkaa, koska muutoin
- # koodi järjestää datan useita kertoja aakkosjärjestykseen
- # ja vain yksi kerta riittää
- # sort() -> järjestää alkuperäisen listan aakkosjärjestykseen
- # berries.sort()
- # print(berries)
- # sorted() => tekee uuden kopion listasta, jolloin
- # jää alkuperäinen lista ja sortattu lista talteen samalla kertaa
- # sorted_berries = sorted(berries)
- # print(sorted_berries)
- # jotta koodi toimii myös pienillä ja isoilla alkukirjaimilla
- # käytetään lambdaa siihen että muutetaan vertailun ajaksi
- # kaikki kirjaimet ISOIKSI
- berries.sort(key=lambda v: v.upper())
- print(berries)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement