tuomasvaltanen

Untitled

Sep 22nd, 2021 (edited)
750
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # Luento 4, merkkijonojen ja virheiden käsittely!
  2. print("Tervetuloa!")
  3.  
  4. text = input("Anna jokin lause:\n")
  5. print(text)
  6.  
  7. # otetaan osa teksti, ensimmäisestä kirjaimesta (0)
  8. # kirjaimeen 10
  9. partial = text[0:10]
  10. print(partial)
  11.  
  12. # kirjaimesta 6 (5) kirjaimeen 12
  13. partial2 = text[5:12]
  14. print(partial2)
  15.  
  16. # voidaan hakea myös väärään suuntaan,
  17. # esim. 4 viimeistä kirjainta
  18. last = text[-4:]
  19. print(last)
  20.  
  21. # jos tarvitsee ottaa jokin ylimääräinen merkki lopusta pois,
  22. # voidaan tehdä näin
  23. years = "2020-2019-2018-"
  24. years = years[0:-1]
  25.  
  26. print(years)
  27.  
  28. # UUSI TIEDOSTO
  29.  
  30. # kysytään käyttäjältä teksti
  31. text = input("Kirjoita jokin lause:\n")
  32. print(text)
  33.  
  34. # tekstin pituus, eli kuinka monta merkkiä tekstissä on
  35. text_length = len(text)
  36.  
  37. # jos teksti on tyhjä, ilmoitetaan siitä käyttäjälle
  38. # muussa tapauksessa tulostetaan tekstin pituus
  39. if text_length == 0:
  40.     print("Teksti on tyhjä!")
  41. else:
  42.     print(f"Antamasi tekstin pituus on {text_length} merkkiä!")
  43.  
  44.     # montako a-kirjainta tekstissä on?
  45.     a_letters = text.count('a')
  46.     print(f"a-kirjaimia: {a_letters} kpl")
  47.  
  48. # UUSI TIEDOSTO
  49.  
  50. text = "niin niin"
  51.  
  52. # tekstin kääntäminen toisinpäin
  53. reverse = text[::-1]
  54. print(reverse)
  55.  
  56. # UUSI TIEDOSTO
  57.  
  58. drinks = "mehu, vesi, maito, kahvi, tee, mehu"
  59.  
  60. # muutetaan kaikki "mehu" -sanat => "vichy"
  61. # jos halutaan muuttaa vain esim. ensimmäinen sana:
  62. # jos kaksi ensimmäistä sanaa , sitten tilalle 2 jne.
  63. # drinks.replace("mehu", "vichy", 1)
  64. new_drinks = drinks.replace("mehu", "vichy")
  65. print(new_drinks)
  66.  
  67. # esim. pilkut rivinvaihdoiksi!
  68. new_drinks = drinks.replace(", ", "\n")
  69. print(new_drinks)
  70. print()
  71.  
  72. # haetaan yksittäinen sana tekstistä
  73. user_text = input("Mitä juomaa haet?\n")
  74.  
  75. # if/else, jos sana löytyy tai ei löydy
  76. if user_text in new_drinks:
  77.     print("Löytyi!")
  78. else:
  79.     print("Eipä löytynyt...")
  80.  
  81. # UUSI TIEDOSTO
  82.  
  83. text = input("Anna numero:\n")
  84. print(text)
  85.  
  86. # tarkistetaan onko käyttäjän antama teksti numero vai ei
  87. if text.isnumeric():
  88.     print("Syötit numeron!")
  89.  
  90.     # koska tiedämme että kyseessä on numero, voidaan muuttaa se int-muotoon
  91.     # ja tehdä laskutoimituksia
  92.     number = int(text)
  93.     print(number * 2)
  94.  
  95. else:
  96.     # ei ollut numeroita ...
  97.     print("Kirjoitit tekstiä...")
  98.  
  99. # UUSI TIEDOSTO
  100.  
  101. # yksinkertainen virheenkäsittely
  102. # jos käyttäjä syöttää tekstiä, otetaan virhetilanne
  103. # kiinni hallitusti!
  104. try:
  105.     number = input("Anna numero:\n")
  106.     number = int(number)
  107.     print(f"Numerosi on {number}")
  108. except ValueError:
  109.     print("Virhe: tulostit tekstiä.")
  110.  
  111. print("Kiitos!")
  112.  
  113. # TOINEN VERSIO
  114.  
  115. # yksinkertainen virheenkäsittely
  116. # jos käyttäjä syöttää tekstiä, otetaan virhetilanne
  117. # kiinni hallitusti!
  118. try:
  119.     number = input("Anna numero:\n")
  120.     number = int(number)
  121.  
  122.     # jakolasku, tämä tuottaa virheen jos käyttäjä syöttää nollan
  123.     result = 100 / number
  124.  
  125.     print(f"Numerosi on {number}")
  126.     print(f"Jakotulos on {result}")
  127. except ValueError:
  128.     print("Virhe: Tulostit tekstiä.")
  129. except ZeroDivisionError:
  130.     print("Virhe: Nollalla ei saa jakaa!")
  131.  
  132. # koska otimme virheistä kopin, ohjelma jatkaa suoritusta normaalisti!
  133. print("Kiitos!")
  134.  
  135. # UUSI TIEDOSTO
  136.  
  137. from decimal import Decimal
  138.  
  139. # tavalliset floatit tuottaa ongelmia
  140. # jos on pieniä lukuja, esim. 0.0 - 0.1
  141. number1 = 0.1
  142. number2 = 0.2
  143.  
  144. print(number1 + number2)
  145.  
  146. # sama decimal-moduulilla
  147. number3 = Decimal("0.1")
  148. number4 = Decimal("0.2")
  149.  
  150. print(number3 + number4)
  151.  
  152. # UUSI TIEDOSTO
  153.  
  154. # esimerkki, asiakastunnus on muotoa A1324_2345
  155. try:
  156.     client = input("Syötä asiakastunnus: \n")
  157.  
  158.     # tunnuksen pituus
  159.     text_length = len(client)
  160.  
  161.     # tarkistetaan että tunnus on 10 merkkiä pitkä
  162.     # ja kuudes merkki on alaviiva
  163.     # jos kaikki ok, mennään elseen ja otetaan tunnuksesta osat irti
  164.     # ja tulostetaan
  165.     if text_length != 10:
  166.         print("Tunnus on väärän mittainen.")
  167.     elif client[5] != "_":
  168.         print("Tunnuksesta puuttuu alaviiva!")
  169.     else:  
  170.         id = client[0:5]
  171.         order = client[6:10]
  172.         order = int(order)
  173.  
  174.         print(id)
  175.         print(order)
  176.  
  177. except Exception as e:
  178.     print("Virhe: " + str(e))
  179.  
  180.  
RAW Paste Data