tuomasvaltanen

Untitled

Oct 10th, 2024 (edited)
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.12 KB | None | 0 0
  1. # ESIMERKKI: miten tunnistetaan käyttäjän valitsema sana
  2. # siten, ettei se ole osana toista sanaa
  3. # esim. jos käyttäjä valitsee sanan "papu"
  4. # silloin koodin ei pitäisi reagoida sanaan "kahvipapu" jne jne
  5.  
  6. # word = "papu"
  7. word = input("Anna etsittävä sana:\n")
  8. word = f" {word} "
  9.  
  10. # koodin pitäisi tulostaa "löytyi" vain silloin
  11. # kun seasta löytyy "papu" sellaisenaan, mutta jos osana
  12. # yhdyssanaa -> skipataan
  13. text = "Kahvipapu, papu, papupata, testilause"
  14. original_text = text
  15.  
  16. # muutetaan pisteet ja pilkut välilyönneiksi, koska muuten
  17. # koodi ei tunnista sanaa, jos se on pisteen tai pilkun vieressä
  18. text = text.replace(".", " ")
  19. text = text.replace(",", " ")
  20. text = " " + text + " "
  21. print()
  22.  
  23. # löytyikö sana lauseesta
  24. if word in text:
  25.     print(f'Sana "{word.strip()}" löytyi lauseesta:')
  26.  
  27. else:
  28.     print(f'Sanaa "{word.strip()}" EI LÖYTYNYT lauseesta:')
  29.  
  30. print(f'"{original_text}"')
  31.  
  32. # UUSI TIEDOSTO
  33.  
  34. # puhelinnumeron tunnistaminen, onko oikeassa formaatissa
  35. # testiluontoinen koodi, tämä ei vielä riittäisi missään varsinaisessa sovelluksessa
  36.  
  37. # suomen maakoodi = +358
  38. # esimerkki suomalaisesta puhelinnumerosta: +358401234567
  39. # suomalainen puhelinnumero +-muodossa on 13 merkkiä pitkä
  40. # test = "+358401234567"
  41. # print(len(test))
  42.  
  43. # logiikka:
  44. # - ensimmäinen merkki on aina +
  45. # - maakoodin pituus vaihtelee 1-3 -merkkiä, +-merkin jälkeen
  46. # - pituus on 13 merkkiä?
  47. # - maakoodin jälkeinen osuus on aina 9 merkkiä (2 + 7, operaattorin
  48. # - osuus ilman ensimmäistä nollaa on 2 merkkiä)
  49. # +-merkin jälkeen pelkkiä numeroita
  50.  
  51. # ---> riippuen maakoodin pituudesta, puhelinnumeron pituus on 11-13
  52. # tosiasiassa puhelinnumerot ovat vieläkin monimutkaisempia,
  53. # kannattaa harkita lisämoduulin käyttämistä tai muuta ratkaisua työelämässä (esim. regexp)
  54. # ks. https://www.tutorialspoint.com/phonenumbers-module-in-python
  55. # ks. https://stackoverflow.com/questions/8406765/international-phone-number-validation
  56.  
  57. phone_number = input("Syötä puhelinnumero:\n")
  58. phone_number_length = len(phone_number)
  59. phone_number_part = phone_number[1:]
  60.  
  61. # kokeillaan logiikan sääntöjä yksitellen läpi
  62. # ensimmäinen merkki pitää olla aina +
  63. if phone_number[0] != "+":
  64.     print("Vääränlainen puhelinnumero, +-merkki puuttuu alusta.")
  65. elif phone_number_length < 11 or phone_number_length > 13:
  66.     print("Vääränlainen puhelinnumero, väärä pituus (pitää olla 11-13).")
  67. elif not phone_number_part.isnumeric():
  68.     # haetaan ensin kaikki merkit ensimmäisen merkin jälkeen (eli +)
  69.     # ja tästä lopusta tekstistä katsotaan, että se on pelkästään numeroita
  70.     print("Vääränlainen puhelinnumero, tekstiä seassa.")
  71. else:
  72.     # tässä on testattu vain osa ehdoista, mutta tämäntyylisiä
  73.     # tällaiset validointilogiikat yleensä on
  74.     print("Puhelinnumero ok!")
  75.  
  76.     country_code = ""
  77.  
  78.     # ei millään tavalla optimaalinen/dynaaminen ratkaisu
  79.     # jokin hienompi logiikka joka osaa irroittaa
  80.     # maakoodin vaikka pituus muuttuisi, olisi hyvä
  81.     if phone_number_length == 13:
  82.         country_code = phone_number[0:4]
  83.  
  84.     print(country_code)
  85.  
Advertisement
Add Comment
Please, Sign In to add comment