Advertisement
tuomasvaltanen

Untitled

Nov 30th, 2023 (edited)
895
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.43 KB | None | 0 0
  1. # Johdatus ohjelmointiin, koodityöpaja, 30.11.2023
  2. print("Tervetuloa!")
  3.  
  4. # UUSI TIEDOSTO
  5.  
  6. # funktio, joka tulee functions.py -tiedostoon:
  7.  
  8. # funktio, joka ottaa vastaan kolme parametria
  9. def count_seconds(hours, minutes, seconds):
  10.     # kaava = tunnit minuuteiksi => minuutit sekunneiksi
  11.     # tunnit sekunneiksi => hours * 60 * 60
  12.     # minuuti sekunneiksi => minutes * 60
  13.     # kaikki yhteen lopuksi, esim. muuttujaan result
  14.     # return result
  15.  
  16.  
  17. # VARSINAINEN OHJELMA (exercise9_2.py)
  18.  
  19. from functions import *
  20.  
  21. # kolme erillistä inputia, muutetaan jokainen int() -muotoon
  22. # esim. hours = input("Anna tunnit:\n")
  23. # hours = int(hours)
  24.  
  25. # result = count_seconds(hours, minutes, seconds)
  26. # result sisältää nyt count_seconds()-funktion laskemat
  27. # sekunnit
  28.  
  29. # UUSI TIEDOSTO
  30.  
  31. # importit, jotka tarvitaan
  32. # huom: muista asentaa Pillow, sillä varsinainen PIL-kirjasto on vanhentunut
  33. from PIL import Image, ImageDraw, ImageFont
  34.  
  35. img = Image.new('RGB', (600, 400), color=(197, 246, 250))
  36. d = ImageDraw.Draw(img)
  37.  
  38. # tämä laatikko alkaa pisteestä 100, 100
  39. # loppuu pisteeseen             200, 200
  40. # tällä logiikalla keskikohta on jossain 150 - 150 kohdalla
  41. # laatikon koko on 200 - 100 => 100 pikseliä
  42. d.rectangle([100, 100, 200, 200], fill=(13, 112, 120))
  43.  
  44. # kokeillaan piirtää pienempi laatikko toisen sisään
  45. # oletetaan että tämä on 50 pikseliä leveä
  46. box_width = 50
  47.  
  48. # sisempi laatikko, tällä logiikalla laatikko on 50 pistettä leveä
  49. # vasen laita = isomman laatikon laita + (laatikon leveys / 2)
  50. d.rectangle([100 + (box_width / 2), 100 + (box_width / 2), 200 - (box_width / 2), 200 - (box_width / 2)], fill=(217, 137, 33))
  51.  
  52. # tallennetaan kuva tiedostoon lopuksi.
  53. # tiedosto ilmestyy ohjelman ajamisen jälkeen samaan kansioon jossa
  54. # .py -tiedosto on
  55. img.save('picture123.png')
  56.  
  57. # UUSI TIEDOSTO - regioneilla saa näppärästi ryhmiteltyä koodin luettavuutta (PyCharmissa regionit saa vedettyä pienennettyyn tilaan / ollapsed):
  58.  
  59. # region Perusfunktiot
  60.  
  61. # määritellään funktio nimeltä show_text
  62. # huom: funktio ei tee mitään koodissa
  63. # ennen kuin sitä kutsutaan/käytetään jossakin
  64. def show_text():
  65.     print("Tervetuloa ohjelman käyttäjäksi!")
  66.     print("--------------------------------")
  67.     print("Seuraa ohjeita!")
  68.     print()
  69.  
  70.  
  71. # funktio joka tulostaa koko nimen ja iän
  72. def combine_text(first, last, age):
  73.     print(f"Tervetuloa: {first} {last}!")
  74.     print(f"Ikäsi on: {age} vuotta.")
  75.  
  76.  
  77. # apufunktio, joka palauttaa kuluvan vuoden
  78. # numerona (voisi käyttää myös datetime)
  79. def get_year():
  80.     year = 2023
  81.     return year
  82.  
  83.  
  84. # funktio joka päättelee annetusta numerosta
  85. # onko kyseessä parillinen vai pariton luku
  86. def get_even_number_text(number):
  87.     if number % 2 == 0:
  88.         return "Parillinen"
  89.     else:
  90.         return "Pariton"
  91.  
  92.  
  93. # apufunktio joka laskee tunneista
  94. # päivien lukumäärän
  95. def hours_to_days(hours):
  96.     result = hours // 24
  97.     return result
  98.  
  99.  
  100. # endregion
  101.  
  102. # region Teksti- ja listafunktiot
  103.  
  104. # apufunktio, joka kääntää tekstin toisinpäin
  105. def reverse_string(text):
  106.     return text[::-1]
  107.  
  108.  
  109. # apufunktio joka tarkistaa onko annettu
  110. # teksti palindromi vai
  111. def check_palindrome(text):
  112.     # kutsutaan toista omaa funktiota
  113.     reversed_text = reverse_string(text)
  114.  
  115.     # tarkistetaan onko teksti palindromi vai ei
  116.     # palautetaan tilanteesta riippuen True/False
  117.     if text == reversed_text:
  118.         return True
  119.     else:
  120.         return False
  121.  
  122.  
  123. # apufunktio, joka tarkistaa onko syötetty
  124. # tilauskoodi oikeassa formaatissa
  125. # oikea formaatti: pituus 10 merkkiä, ensimmäinen kirjain on T
  126. def check_order(code):
  127.     result = True
  128.  
  129.     # jos koodi EI OLE tasan 10 merkkiä => False
  130.     if len(code) != 10:
  131.         result = False
  132.  
  133.     # jos koodin ensimmäinen merkki EI OLE -> T -> False
  134.     if code[0] != "T":
  135.         result = False
  136.  
  137.     return result
  138.  
  139.  
  140. # endregion
  141.  
  142. # UUSI TIEDOSTOA
  143.  
  144. data = ["vihreä", "punainen", "sininen", "turkoosi"]
  145.  
  146. # join() -funktion peruskaava on tämä:
  147. # "merkki jolla halutaan erotella".join(yksinkertainen tekstilista)
  148. # esim.
  149. # text = ", ".join(data)
  150.  
  151. # lisää esimerkkejä: https://www.digitalocean.com/community/tutorials/python-join-list
  152. # hakusanana: python 3 list join examples
  153.  
  154. # jutun juju on siinä, että lista pitää ensin
  155. # yksinkertaistaa peruslistaksi (tekstilista), jonka jälkeen
  156. # voidaan käyttää joinia
  157.  
  158. text = " <------> ".join(data)
  159.  
  160. print(text)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement