tuomasvaltanen

Untitled

Oct 4th, 2022 (edited)
1,241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.81 KB | None | 0 0
  1. # merkkijonojen käsittelyä ja virheiden hallintaa tänään!
  2. print("Tervetuloa!")
  3.  
  4. # UUSI TIEDOSTO
  5.  
  6. # hipsuja ja lainausmerkkejä yhdistelemällä voidaan saada lainausmerkit myös tekstiin!
  7. name = 'Matti "Mahtikoodari" Meikäläinen'
  8. print(name)
  9.  
  10. # \-merkillä voidaan tulostaa kirjaimellisesti myös lainausmerkki!
  11. name = "Matti \"Mahtikoodari\" Meikäläinen"
  12.  
  13. # muutoin lainausmerkeillä ja hipsuilla ei ole mitään eroa
  14. # molemmat näistä ajavat saman asian!
  15. name2 = "Matti"
  16. name3 = 'Matti'
  17.  
  18. print(name2)
  19. print(name3)
  20.  
  21. # UUSI TIEDOSTO
  22.  
  23. text = input("Anna jotain tekstiä:\n")
  24. print(text)
  25.  
  26. # osateksti, ensimmäisestä merkistä -> kymmenenteen merkkiin
  27. # laskenta alkaa 0:sta, ei 1:stä!
  28. subtext = text[0:10]
  29. print(subtext)
  30.  
  31. # myös keskeltä voidaan ottaa tekstiä
  32. subtext2 = text[5:15]
  33. print(subtext2)
  34.  
  35. # otetaan vain viisi viimeistä merkkiä
  36. subtext3 = text[-5:]
  37. print(subtext3)
  38.  
  39. # otetaan kaikki merkit viidennen merkin jälkeen
  40. subtext4 = text[5:]
  41. print(subtext4)
  42.  
  43. # UUSI TIEDOSTO
  44.  
  45. years = "2022-2021-2020-2019-2018-"
  46. print(years)
  47.  
  48. # joskus on tarve ottaa tekstin hännästä pois ylimääräiset merkit
  49. # eli tässä tapauksessa ylimääräinen väliviiva
  50. years = years[0:-1]
  51. print(years)
  52.  
  53. # UUSI TIEDOSTO
  54.  
  55. text = input("Anna jokin lause:\n")
  56.  
  57. # tekstin pituus, eli merkkien määrä.
  58. # huom: välilyönti on myös merkki
  59. text_length = len(text)
  60. print(f"Merkkejä: {text_length}")
  61.  
  62. # a-kirjainten määrä annetussa tekstissä:
  63. a_letters = text.count("a")
  64. print(f"a-kirjaimia: {a_letters} kpl")
  65.  
  66. # usein tarvitaan merkkien määrää if-lauseessa, esim:
  67. if text_length > 30:
  68.     print("Pitkä lause!")
  69. else:
  70.     print("Lyhyt lause...")
  71.  
  72.  
  73. # yleinen tarkistus, onko annettu teksti tyhjä
  74. # myös if text == "": käy usein
  75. if text_length == 0:
  76.     print("Teksti on tyhjä!")
  77. else:
  78.     print("Teksti ei ole tyhjä.")
  79.  
  80. # UUSI TIEDOSTO
  81.  
  82. text = "Rovaniemi"
  83.  
  84. # teksti toisinpäin
  85. reversed_text = text[::-1]
  86. print(reversed_text)
  87.  
  88. # UUSI TIEDOSTO
  89.  
  90. # alkuperäinen teksti
  91. drinks = "mehu, maito, kahvi, tee, mehu"
  92. print(drinks)
  93.  
  94. # vaihdetaan kaikki mehut vichyiksi
  95. new_drinks = drinks.replace("mehu", "vichy")
  96. print(new_drinks)
  97. print()
  98.  
  99. # muutetaan pilkut rivinvaihdoiksi!
  100. new_drinks2 = drinks.replace(", ", "\n")
  101. print(new_drinks2)
  102. print()
  103.  
  104. # katsotaan löytyykö käyttäjän antama juoma muuttujasta
  105. # nimieltä new_drinks
  106. user_text = input("Mitä juomaa haluat?\n")
  107.  
  108. if user_text in new_drinks:
  109.     print("Löytyi!")
  110. else:
  111.     print("Ei löytynyt...")
  112.  
  113. # UUSI TIEDOSTO
  114.  
  115. text = input("Anna joko tekstiä tai numeroita:\n")
  116.  
  117. # jos halutaan myös käyttää desimaaleja,
  118. # voidaan ottaa piste pois ennen if-lausetta
  119. # text_new = text.replace(".", "")
  120.  
  121. # voidaan tehdä kuitenkin kaksi haaraa sille,
  122. # mitä tehdään numeroiden ja mitä tekstin kanssa
  123. if text.isnumeric():
  124.     print("Annoit numeron!")
  125.     number = int(text)
  126.     number = number * 2
  127.     print(number)
  128. else:
  129.     print("Annoit tekstiä!")
  130.  
  131. # UUSI TIEDOSTO
  132.  
  133. text = input("Opiskelija vai aikuinen? (o/a):\n")
  134.  
  135. # pakotetaan annettu teksti pieneksi, jolloin if-lauseet
  136. # toimivat aina
  137. text = text.lower()
  138.  
  139. # opiskelija, aikuinen vai jotain muuta
  140. # koska text pakotetaan nyt pieniksi kirjaimiksi,
  141. # tässä ei tarvita if text == 'o' or text == 'O': jne jne
  142. if text == 'o':
  143.     print("Opiskelija!")
  144. elif text == 'a':
  145.     print("Aikuinen!")
  146. else:
  147.     print("Väärä valinta.")
  148.  
  149. # UUSI TIEDOSTO
  150.  
  151. # otetaan kiinni mahdolliset virheet
  152. # esim jos käyttäjä syöttää tekstiä vaikka pitäisi syöttää numero
  153. try:
  154.     number = input("Anna numero:\n")
  155.     number = int(number)
  156.     number = number * 2
  157.     print(number)
  158. except ValueError:
  159.     print("Annoit tekstiä! Aja ohjelma uudelleen.")
  160.  
  161. # UUSI TIEDOSTO
  162.  
  163. # otetaan kiinni mahdolliset virheet
  164. # esim jos käyttäjä syöttää tekstiä vaikka pitäisi syöttää numero
  165. # nyt otetaan huomioon myös nollalla jakaminen
  166. try:
  167.     number = input("Anna numero:\n")
  168.     number = int(number)
  169.     divided = 100 / number
  170.     print(f"Numerosi: {number}, jakotulos: {divided}")
  171. except ValueError:
  172.     print("Annoit tekstiä! Aja ohjelma uudelleen.")
  173. except ZeroDivisionError:
  174.     print("Nollalla ei voi jakaa!")
  175.  
  176. # UUSI TIEDOSTO
  177.  
  178. # otetaan kiinni kaikki mahdollliset virheet
  179. # huom: virheviestit tulevat tällöin suoraan Pythonista
  180. # ja ovat englanniksi, sekä usein erittäin teknisiä
  181. try:
  182.     number = input("Anna numero:\n")
  183.     number = int(number)
  184.     divided = 100 / number
  185.     print(f"Numerosi: {number}, jakotulos: {divided}")
  186. except Exception as e:
  187.     print("Virhe: " + str(e))
  188.     print("Virhe! Ole yhteydessä sovelluksen kehittäjään.")
  189.  
  190. # UUSI TIEDOSTO
  191.  
  192. # Tämä esimerkki yhdistelee kaikkia, eli ehtolauseita, merkkijono-operaatioita sekä virheenkäsittelyä
  193.  
  194. # tehdään ohjelma, joka tarkistaa, onko annettu asiakastunnus oikeassa muodossa
  195. # esimerkki asiakastunnuksesta: A1234_2345
  196. # säännöt: tunnus on tasan 10 merkkiä pitkä, ja kuudes merkki on aina alaviiva
  197.  
  198. # käytetään try/exceptiä varmuuden vuoksi
  199. # ettei ohjelma tilttaa
  200. try:
  201.     # pyydetään asiakastunnus käyttäjältä
  202.     client = input("Syötä asiakastunnus:\n")
  203.     text_length = len(client)
  204.  
  205.     # tarkistetaan että onhan annettu tunnus tasan 10 merkkiä pitkä
  206.     if text_length != 10:
  207.         print("Tunnus on väärän mittainen.")
  208.     elif client[5] != "_":
  209.         # tämä ajetaan vain jos kuudes merkki ei ollu alaviiva
  210.         # huom: ensimmäinen merkki alkaa nollasta! (eli client[0])
  211.         print("Tunnuksesta puuttuu alaviiva!")
  212.     else:
  213.         # kaikki testit ok, otetaan asiakastunnuksesta osat irti
  214.         print("Tunnus ok!")
  215.         id = client[0:5]
  216.         order = client[6:10]
  217.         order = int(order)
  218.  
  219.         print(id)
  220.         print(order)
  221.  
  222. except Exception as e:
  223.     print("Virhe: " + str(e))
  224.  
Advertisement
Add Comment
Please, Sign In to add comment