Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # merkkijonojen käsittelyä ja virheiden hallintaa tänään!
- print("Tervetuloa!")
- # UUSI TIEDOSTO
- # hipsuja ja lainausmerkkejä yhdistelemällä voidaan saada lainausmerkit myös tekstiin!
- name = 'Matti "Mahtikoodari" Meikäläinen'
- print(name)
- # \-merkillä voidaan tulostaa kirjaimellisesti myös lainausmerkki!
- name = "Matti \"Mahtikoodari\" Meikäläinen"
- # muutoin lainausmerkeillä ja hipsuilla ei ole mitään eroa
- # molemmat näistä ajavat saman asian!
- name2 = "Matti"
- name3 = 'Matti'
- print(name2)
- print(name3)
- # UUSI TIEDOSTO
- text = input("Anna jotain tekstiä:\n")
- print(text)
- # osateksti, ensimmäisestä merkistä -> kymmenenteen merkkiin
- # laskenta alkaa 0:sta, ei 1:stä!
- subtext = text[0:10]
- print(subtext)
- # myös keskeltä voidaan ottaa tekstiä
- subtext2 = text[5:15]
- print(subtext2)
- # otetaan vain viisi viimeistä merkkiä
- subtext3 = text[-5:]
- print(subtext3)
- # otetaan kaikki merkit viidennen merkin jälkeen
- subtext4 = text[5:]
- print(subtext4)
- # UUSI TIEDOSTO
- years = "2022-2021-2020-2019-2018-"
- print(years)
- # joskus on tarve ottaa tekstin hännästä pois ylimääräiset merkit
- # eli tässä tapauksessa ylimääräinen väliviiva
- years = years[0:-1]
- print(years)
- # UUSI TIEDOSTO
- text = input("Anna jokin lause:\n")
- # tekstin pituus, eli merkkien määrä.
- # huom: välilyönti on myös merkki
- text_length = len(text)
- print(f"Merkkejä: {text_length}")
- # a-kirjainten määrä annetussa tekstissä:
- a_letters = text.count("a")
- print(f"a-kirjaimia: {a_letters} kpl")
- # usein tarvitaan merkkien määrää if-lauseessa, esim:
- if text_length > 30:
- print("Pitkä lause!")
- else:
- print("Lyhyt lause...")
- # yleinen tarkistus, onko annettu teksti tyhjä
- # myös if text == "": käy usein
- if text_length == 0:
- print("Teksti on tyhjä!")
- else:
- print("Teksti ei ole tyhjä.")
- # UUSI TIEDOSTO
- text = "Rovaniemi"
- # teksti toisinpäin
- reversed_text = text[::-1]
- print(reversed_text)
- # UUSI TIEDOSTO
- # alkuperäinen teksti
- drinks = "mehu, maito, kahvi, tee, mehu"
- print(drinks)
- # vaihdetaan kaikki mehut vichyiksi
- new_drinks = drinks.replace("mehu", "vichy")
- print(new_drinks)
- print()
- # muutetaan pilkut rivinvaihdoiksi!
- new_drinks2 = drinks.replace(", ", "\n")
- print(new_drinks2)
- print()
- # katsotaan löytyykö käyttäjän antama juoma muuttujasta
- # nimieltä new_drinks
- user_text = input("Mitä juomaa haluat?\n")
- if user_text in new_drinks:
- print("Löytyi!")
- else:
- print("Ei löytynyt...")
- # UUSI TIEDOSTO
- text = input("Anna joko tekstiä tai numeroita:\n")
- # jos halutaan myös käyttää desimaaleja,
- # voidaan ottaa piste pois ennen if-lausetta
- # text_new = text.replace(".", "")
- # voidaan tehdä kuitenkin kaksi haaraa sille,
- # mitä tehdään numeroiden ja mitä tekstin kanssa
- if text.isnumeric():
- print("Annoit numeron!")
- number = int(text)
- number = number * 2
- print(number)
- else:
- print("Annoit tekstiä!")
- # UUSI TIEDOSTO
- text = input("Opiskelija vai aikuinen? (o/a):\n")
- # pakotetaan annettu teksti pieneksi, jolloin if-lauseet
- # toimivat aina
- text = text.lower()
- # opiskelija, aikuinen vai jotain muuta
- # koska text pakotetaan nyt pieniksi kirjaimiksi,
- # tässä ei tarvita if text == 'o' or text == 'O': jne jne
- if text == 'o':
- print("Opiskelija!")
- elif text == 'a':
- print("Aikuinen!")
- else:
- print("Väärä valinta.")
- # UUSI TIEDOSTO
- # otetaan kiinni mahdolliset virheet
- # esim jos käyttäjä syöttää tekstiä vaikka pitäisi syöttää numero
- try:
- number = input("Anna numero:\n")
- number = int(number)
- number = number * 2
- print(number)
- except ValueError:
- print("Annoit tekstiä! Aja ohjelma uudelleen.")
- # UUSI TIEDOSTO
- # otetaan kiinni mahdolliset virheet
- # esim jos käyttäjä syöttää tekstiä vaikka pitäisi syöttää numero
- # nyt otetaan huomioon myös nollalla jakaminen
- try:
- number = input("Anna numero:\n")
- number = int(number)
- divided = 100 / number
- print(f"Numerosi: {number}, jakotulos: {divided}")
- except ValueError:
- print("Annoit tekstiä! Aja ohjelma uudelleen.")
- except ZeroDivisionError:
- print("Nollalla ei voi jakaa!")
- # UUSI TIEDOSTO
- # otetaan kiinni kaikki mahdollliset virheet
- # huom: virheviestit tulevat tällöin suoraan Pythonista
- # ja ovat englanniksi, sekä usein erittäin teknisiä
- try:
- number = input("Anna numero:\n")
- number = int(number)
- divided = 100 / number
- print(f"Numerosi: {number}, jakotulos: {divided}")
- except Exception as e:
- print("Virhe: " + str(e))
- print("Virhe! Ole yhteydessä sovelluksen kehittäjään.")
- # UUSI TIEDOSTO
- # Tämä esimerkki yhdistelee kaikkia, eli ehtolauseita, merkkijono-operaatioita sekä virheenkäsittelyä
- # tehdään ohjelma, joka tarkistaa, onko annettu asiakastunnus oikeassa muodossa
- # esimerkki asiakastunnuksesta: A1234_2345
- # säännöt: tunnus on tasan 10 merkkiä pitkä, ja kuudes merkki on aina alaviiva
- # käytetään try/exceptiä varmuuden vuoksi
- # ettei ohjelma tilttaa
- try:
- # pyydetään asiakastunnus käyttäjältä
- client = input("Syötä asiakastunnus:\n")
- text_length = len(client)
- # tarkistetaan että onhan annettu tunnus tasan 10 merkkiä pitkä
- if text_length != 10:
- print("Tunnus on väärän mittainen.")
- elif client[5] != "_":
- # tämä ajetaan vain jos kuudes merkki ei ollu alaviiva
- # huom: ensimmäinen merkki alkaa nollasta! (eli client[0])
- print("Tunnuksesta puuttuu alaviiva!")
- else:
- # kaikki testit ok, otetaan asiakastunnuksesta osat irti
- print("Tunnus ok!")
- id = client[0:5]
- order = client[6:10]
- order = int(order)
- print(id)
- print(order)
- except Exception as e:
- print("Virhe: " + str(e))
Advertisement
Add Comment
Please, Sign In to add comment