Advertisement
Guest User

Untitled

a guest
May 21st, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.09 KB | None | 0 0
  1. #-*- coding: utf-8 -*-
  2. ## Klasa, z punktu widzenia programowania, jest to typ zmiennej.
  3. ## Natomiast w ujęciu projektowym jest to ogólna definicja pewnej grupy powiązanych ze sobą obiektów,
  4. ## które różnią się tożsamością. Klasa definiuje metody, czyli funkcjonalności, które są dostarczane przez obiekty.
  5. ## Poza tym definiuje również atrybuty, które są indywidualne (choć nie zawsze) dla konkretnych obiektów.
  6. ## Czym jest obiekt? Jest to konkretna zmienna danego typu czyli instancja danej klasy.
  7.  
  8. ## Janek, Ania, Zosia to obiekty klasy Człowiek in. to poszczególne egzemplarze danej klasy czyli instancje
  9. ## Każde z nich może spać, jeść, poruszać się i to są właśnie metody zdefiniowane w klasie Człowiek.
  10. ## Oprócz tego każdy człowiek posiada imię oraz datę urodzenia, jednak są one indywidualne dla każdego obiektu,
  11. ## czyli nie są bezpośrednio powiązane z klasą, a z jej instancją (obiektem)
  12.  
  13. ## Zapamiętaj: w programowaniu obiektowym tworzymy/wykorzystujemy: klasy i obiekty.
  14. ## Klasa tworzy nowy typ. Obiekty to są egzemplarze (instancje) danej klasy.
  15. ## Klasa zawiera:
  16. ## a) elementy opisujące stan (pola klasy)
  17. ## b) zachowania (metody klasy)
  18. ##
  19. ## Wyobraź sobie dwa różne zwierzęta: Samochód i Motyla - to są dwie różne klasy
  20. ## Samochód: jeździ, wyrzuca spaliny, psuje się - to są metody klasy Samochód
  21. ## Motyl: lata, pije nektar - to są metody klasy Motyl
  22. ## Samochód ma: masę, rok produkcji, typ silnika, pojemność silnika - to są pola/dane klasy Samochód
  23. ## Motyl ma: rozmiar skrzydeł, wagę, kolorystykę itp. - to są pola/dane klasy Motyl
  24. ##
  25. ## Ale jeżeli będziesz mieć konkretny Samochód lub Motyla (np. Twoje własne) to będą one
  26. ## konkretnymi egzemplarzami, czyli obiektem klasy Samochód lub obiektem klasy Motyl
  27.  
  28. ####################################################################################
  29. # print('##########################################################')
  30. # print('Przykład 1: Tworzymy klasę o nazwie Komputer1 oraz metodę o nazwie powitanie')
  31. # print('Parametr ”self” to specjalny parametr (wpisuj go zawsze jako pierwszy argument w funkcji),')
  32. # print('który przekazuje do każdej metody obiekt klasy na jakiej ma operować.')
  33. # print('##########################################################')
  34.  
  35.  
  36. # class Komputer1:
  37. # def powitanie(self):
  38. # print('Witaj użytkowniku to ja Twój PC')
  39. #
  40. #
  41. # mojKomputer = Komputer1() #Tworzymy obiekt klasy Komputer -> struktura: nazwa_obiektu = nazwa_Klasy()
  42. # mojKomputer.powitanie()# Wywołujemy metodę -> metodę powitanie na obiekcie mojKomputer
  43.  
  44.  
  45. # print('###################################################################')
  46. # print('Zadanie 1')
  47. # print('Utwórz klasę Imiona z metodą o nazwie zapytaj,'
  48. # 'metoda zapytaj po wywołaniu na obiekcie klasy Imiona'
  49. # 'powinna wyświetlić pytanie "Jak masz na imie?')
  50.  
  51. # class Imiona:
  52. # def zapytaj(self):
  53. # print ("Jak masz na imie?")
  54. #
  55. # Zbiorimion = Imiona()
  56. # Zbiorimion.zapytaj ()
  57. # print('###################################################################')
  58.  
  59.  
  60.  
  61. # ################################################################################
  62. # print('Przykład 2: Utworzymy klasę o nazwie Komputer w której')
  63. # print('zdefiniujemy pola: rodzajMatrycy, pojemnoscDysku w/w pola to zmienne proste')
  64. # print('ustawimy też początkowe wartości w/w własności dla przykładowej instancji/konkretnego obiektu')
  65. # class Komputer:
  66. # rodzajMatrycy = 'LCD' # zmienna widoczna tylko wewnątrz klasy
  67. # pojemnoscDysku = 100
  68. # def jakirodzajMatrycy(self):
  69. # return(self.rodzajMatrycy) # wywołanie metody na obiekcie self.nazwa_metody
  70. # def jakapojemnoscDysku(self):
  71. # return(self.pojemnoscDysku)
  72. #
  73. # mojKomputer = Komputer() #Tworzymy obiekt klasy Komputer
  74. # w1 = mojKomputer.jakirodzajMatrycy()# przypisujemy do zmiennej w1 rezultat wywołania metody jakiRodzajMatrycy na obiekcie mojKomputer
  75. # print(w1) ## wyświetlamy wynik
  76. # w2 = mojKomputer.jakapojemnoscDysku()
  77. # print(w2)
  78.  
  79. # print('###################################################################')
  80. # print('Zadanie 2')
  81. # print('Utwórz klasę Pies z polami: waga = 10, rasa = "Jamnik" ')
  82. # print('Utwórz metody: jakaWaga, jakaRasa które będą wyświetlały wartości utworzonych pól')
  83.  
  84. # class Pies:
  85. # waga = 10
  86. # rasa = "Jamnik"
  87. # def jakawaga(self):
  88. # return(self.waga)
  89. # def jakarasa(self):
  90. # return(self.rasa)
  91. #
  92. #
  93. #
  94. # mojpies = Pies()
  95. # w1 = mojpies.jakawaga()
  96. # print (w1)
  97. # r1 = mojpies.jakarasa()
  98. # print(r1)
  99. # #####################################################################################
  100. # print('Przykład 3: Tworzymy klasę o nazwie Telewizor w której')
  101. # print('zdefiniujemy pole, które będzie listą: listaKanalow')
  102. # print('zdefiniujemy metodę jakieKanaly która wyświetli dostępne kanały')
  103. # class Telewizor:
  104. # listaKanalow = ['TV1','Polsat','TVN']
  105. # def jakieKanaly(self):
  106. # for i in self.listaKanalow:
  107. # print(i)
  108. # print('######Wynik działania Przykład 3 ###########')
  109. # mojTelewizor = Telewizor()
  110. # mojTelewizor.jakieKanaly()
  111. # print('###################################################################')
  112.  
  113.  
  114. # ###########################################################################################
  115. # print('Zadanie 3')
  116. # print('Utwórz klasę Kwiaty z 1 polem tj. listą zawierająca wartości: Tulipan, Hiacynt, Bez, Dalia')
  117. # print('utwórz metodę: jakiRodzaj która będzie wyświetlała wartości z w/w listy')
  118.  
  119. # class Kwiaty:
  120. # Rodzaj = ['Tulipan','Hiacynt','Bez', 'Dalia']
  121. # def jakiRodzaj(self):
  122. # for i in self.Rodzaj:
  123. # print(i)
  124. #
  125. #
  126. # mojKwiat = Kwiaty()
  127. # mojKwiat.jakiRodzaj()
  128.  
  129.  
  130.  
  131.  
  132. # ############################################################################
  133. # # Metoda która jest wywoływana tylko raz (automatycznie podczas
  134. # # tworzenia przez nas obiektu) nazywana jest konstruktorem.
  135. # # Konstruktor możemy wykorzystać np. do ustalenia wartości początkowej pól klasy,
  136. # # Załóżmy, że tworzysz 5 różnych obiektów (egzemplarzy) dla klasy Pies
  137. # # więc każdego obiektu możesz przypisać inną wartość wagi i rasę bo
  138. # # są różne rasy psów i psy mają różną wagę, ale możesz ustawić jakieś wartości początkowe
  139. # print('Przykład 4: Tworzymy klasę o nazwie TV w której')
  140. # print('zdefiniujemy pole, które będzie listą: listaKanalow oraz pole numerKanalu o wartości 1')
  141. # print('zdefiniujemy konstruktor który ustawi/wyświetli bieżacy kanał włączony w TV')
  142.  
  143. # class TV:
  144. # listaKanalow = ['TV1','Polsat','TVN']
  145. # numerKanalu = 1
  146. # def __init__(self):
  147. # print('Włączony kanał to: ' + self.listaKanalow[self.numerKanalu])
  148. #
  149. # mojTV = TV() # wywołanie
  150.  
  151. # print('################################################')
  152. # print('Zadanie 4')
  153. # print('Utwórz klasę Koty z 1 polem tj. listą zawierająca wartości: Pers, Egipski, Bengalski, Sfinks')
  154. # print('utwórz konstruktor który przypisze i wyświetli dowolnie wybrany gatunek kota')
  155. # print('################################################')
  156.  
  157. # class Koty:
  158. # Rasy = ['Pers','Egipski','Bengalski','Sfinks']
  159. # Rasa = 1
  160. # def __init__(self):
  161. # print('Wybrana Rasa to: ' + self.Rasy[self.Rasa])
  162. #
  163. # mojkot = Koty()
  164.  
  165.  
  166.  
  167.  
  168.  
  169. # print('Przykład 5: Nauczymy zmieniać wartości pól, tworzymy klasę o nazwie Muzyka w której')
  170. # print('zdefiniujemy pole, które będzie listą zawierająca typy muzyki oraz pole nrTyp o wartości 0')
  171. # print('zdefiniujemy konstruktor który ustawi/wyświetli początkowy typ muzyki')
  172. # print('następnie zdefiniujemy metody ustawTypMuzyki, wyswietlTypMuzyki do zmiany wartości pola typ muzyki i wyświetlania wyniku ')
  173. # class Muzyka:
  174. # typyMuzyki = ['ROCK','POP','JAZZ','KLASYKA','DISCO_POLO']
  175. # nrTyp = 0
  176. # def __init__(self):
  177. # self.typyMuzyki[self.nrTyp]
  178. # # print('Początkowy typ muzyki to: ' + self.typyMuzyki[self.nrTyp])
  179. #
  180. # def ustawTypMuzyki(self, wpisanyNumer):
  181. # self.nrTyp = wpisanyNumer
  182. # #print(self.typyMuzyki[self.nrTyp])
  183. #
  184. # def wyswietlTypMuzyki(self):
  185. # print('Ustawiony typ muzyki to: ' + self.typyMuzyki[self.nrTyp])
  186.  
  187. # print('#################')
  188. # mojaMuzyka1 = Muzyka()
  189. # mojaMuzyka1.wyswietlTypMuzyki()
  190. # mojaMuzyka1.ustawTypMuzyki(3)
  191. # mojaMuzyka1.wyswietlTypMuzyki()
  192.  
  193. # print('######A teraz odblokuj kod który jest jeszcze bardziej uniwersalny########################')
  194. # mojaMuzyka2 = Muzyka()
  195. # mojaMuzyka2.ustawTypMuzyki(int(input("Wskaz numer typu muzyki od 1-5: "))-1)
  196. # mojaMuzyka2.wyswietlTypMuzyki()
  197. #
  198. #################
  199. # print('Zadanie 5: Utwórz klasę o nazwie Egzamin w której')
  200. # print('zdefiniujemy pole Przedmioty, które będzie listą zawierającą nazwy przedmiotów które zdajesz w tym semestrze oraz pole nrPrzedmiotu,
  201. # wartość tego pola odpowiada nr przedmiotu który zdajesz jako pierwszy w sesji')
  202. # print('zdefiniujemy konstruktor który ustawi/wyświetli początkowy przedmiot który będziesz zdawał w sesji')
  203. # print('następnie zdefiniujemy 2 metody ustawPrzedmiot, wyswietlPrzedmiot do zmiany wartości w/w pola i wyświetlania wyniku ')
  204. # print('wstaw odpowiedni komentarz dla wyświetlanej odpowiedzi, przetestuj swój program')
  205.  
  206. # class Egzamin:
  207. # Przedmioty = ['Matematyka Dyskretna','Analiza Matematyczna','Python','Ask']
  208. # nrPrzedmiotu = 0
  209. # def __init__(self):
  210. # self.Przedmioty[self.nrPrzedmiotu]
  211. # print('Pierwszy przedmiot w sesji to: ' + self.Przedmioty[self.nrPrzedmiotu])
  212. #
  213. # def ustawPrzedmiot(self, wpisanyNumer):
  214. # self.nrTyp = wpisanyNumer
  215. # print(self.Przedmioty[self.nrPrzedmiotu])
  216. #
  217. # def wyswietlPrzedmiot(self):
  218. # print('Wynik to: ' + self.Przedmioty[self.nrPrzedmiotu])
  219. #
  220. # mojeprzedmioty1 = Egzamin()
  221. # mojeprzedmioty1.ustawPrzedmiot(3)
  222. # mojeprzedmioty1.wyswietlPrzedmiot()
  223. #
  224. # mojeprzedmioty2 = Egzamin()
  225. # mojeprzedmioty2.ustawPrzedmiot(int(input("Wskaz ocene od od 2-5: "))-1)
  226. # mojeprzedmioty2.wyswietlPrzedmiot()
  227.  
  228. ######################################################################
  229. # print(' Przykład 6. Utwórz klasę Prostokat, ktora bedzie miała możliwość obliczenia pola powierzchni '
  230. # 'prostokąta o bokach dowolnie zdefiniowanych przez użytkownika, początkowe wartości boków ustaw na 2 i 5')
  231.  
  232. # # ####wariant 1
  233. # class Prostokat:
  234. # def __init__(self):
  235. # self.bokA = 2
  236. # self.bokB = 5
  237. # #return(print('Poczatkowe wartosci bokow to a = ' + str(self.bokA) + ' oraz b = ',str(self.bokB)))
  238. # def podajBokA(self,podanybokA):
  239. # self.bokA = podanybokA
  240. # def podajBokB(self, podanybokB):
  241. # self.bokB = podanybokB
  242. # def pole(self):
  243. # S = self.bokA * self.bokB
  244. # return(print('Pole wynosi: '+ str(S)))
  245. #
  246. # mojProstokat = Prostokat()
  247. # mojProstokat.pole() # bez ustawiania wartości boku A i B, program korzysta z wartości początkowych
  248. # mojProstokat.podajBokA(10) # ustawianie wartości boku A, początkowa wartość 2 zamieniana jest na 10
  249. # mojProstokat.podajBokB(20) # ustawianie wartości boku B, początkowa wartość 5 zamieniana jest na 20
  250. # mojProstokat.pole()
  251.  
  252. # ####wariant 2
  253. # class Prostokat():
  254. # def __init__(self):
  255. # self.bokA = 2
  256. # self.bokB = 5
  257. # def podajBoki(self,bokA,bokB):
  258. # self.bokA = bokA
  259. # self.bokB = bokB
  260. # def pole(self):
  261. # S = self.bokA * self.bokB
  262. # return(print('Pole wynosi: '+ str(S)))
  263. #
  264. # mojProstokat = Prostokat()
  265. # mojProstokat.pole()
  266. # mojProstokat.podajBoki(3,5)
  267. # mojProstokat.pole()
  268. #
  269. # # ####wariant 3
  270. # class Prostokat():
  271. # def __init__(self,bokA,bokB):
  272. # self.bokA = bokA
  273. # self.bokB = bokB
  274. # def pole(self):
  275. # S = self.bokA * self.bokB
  276. # return(print('Pole wynosi: '+ str(S)))
  277. #
  278. # mojProstokat = Prostokat(2,5)
  279. # mojProstokat.pole()
  280. ######################################################################
  281. # print(' Zadanie 6. Utwórz klasę Koło, ktora bedzie miała możliwość obliczenia pola powierzchni i obwodu koła'
  282. # 'o promieniu dowolnie zdefiniowanym przez użytkownika, początkową wartość promienia ustaw na 1')
  283.  
  284. # # ####wariant 3
  285. # class Koło():
  286. # def __init__(self,promien,pi):
  287. # self.promien = promien
  288. # self.pi = pi
  289. # def pole(self):
  290. # S = self.promien * self.pi
  291. # return(print('Pole wynosi: '+ str(S)))
  292. #
  293. # mojeKolo = Koło(1,3)
  294. # mojeKolo.pole()
  295.  
  296. # class Kolo:
  297. # def __init__(self):
  298. # self.r = 1
  299. # self.pi = 3.14
  300. # self.d = 2
  301. # return(print('Poczatkowe wartosci bokow to r = ' + str(self.r) + ' oraz pi = ',str(self.pi)))
  302. # def podajd(self,podaned):
  303. # self.d = podaned
  304. # def podajr(self,podaner):
  305. # self.r = podaner
  306. # def podajpi(self, podanepi):
  307. # self.pi = podanepi
  308. # def pole(self):
  309. # S = self.r * self.pi
  310. # return(print('Pole wynosi: '+ str(S)))
  311. # def Obwod(self):
  312. # O = self.d * self.pi
  313. # return(print('Obwod wynosi: '+ str(O)))
  314. #
  315. # mojeKolo = Kolo()
  316. # mojeKolo.podajr(10) # ustawianie wartości boku A, początkowa wartość 2 zamieniana jest na 10
  317. # mojeKolo.podajpi(20) # ustawianie wartości boku B, początkowa wartość 5 zamieniana jest na 20
  318. # mojeKolo.pole()
  319. #
  320. # mojeKolo = Kolo()
  321. # mojeKolo.podajd(10) # ustawianie wartości boku A, początkowa wartość 2 zamieniana jest na 10
  322. # mojeKolo.podajpi(20) # ustawianie wartości boku B, początkowa wartość 5 zamieniana jest na 20
  323. # mojeKolo.Obwod()
  324.  
  325. #-*- coding: utf-8 -*-
  326. # import numpy as np
  327. #######################################################################
  328. # print('Przykład 7 Utwórz klasę Ankieta, która będzie posiadała 5 pól: nazwisko, wiek, studia, lubi1, lubi2')
  329. # print('oraz 5 metod: pytanieDane, pytanieWiek, pytanieStudia, pytanieLubi, wyswietlAnkiete')
  330. # print('Zbierz informacje od conajmniej 2 użytkownikow, zadajac im pytania: o dane osobowe, wiek, kierunek studiow')
  331. # print('o to co lubią robić w wolnym czasie, a następnie wyniki zapisz do listy/słownika ')
  332. #
  333. # class Ankieta(object):
  334. # nazwisko=[]
  335. # wiek = []
  336. # studia = []
  337. # lubi1 = []
  338. # lubi2 = []
  339. # def __init__(self):
  340. # return(print('Nazwisko: - ', 'Wiek: -', 'Studia: -', 'Lubi: -'))
  341. # def pytanieDane(self,noweNazwisko):
  342. # self.nazwisko = noweNazwisko
  343. # return(self.nazwisko)
  344. # def pytanieDane(self, wiek1):
  345. # self.wiek = wiek1
  346. # return(self.wiek)
  347. # def pytanieStudia(self, studia1):
  348. # self.studia = studia1
  349. # return (self.studia)
  350. # def pytanieLubi(self, lubi11,lubi22):
  351. # self.lubi1 = lubi11
  352. # self.lubi2 = lubi22
  353. # return([self.lubi1, self.lubi2])
  354. # def wyswietl(self):
  355. # mojSlownik = {'Imie_Nazwisko': self.nazwisko, 'Wiek': self.wiek, 'Studia_kierunek': self.studia,'Lubi': [self.lubi1, self.lubi2]}
  356. # print(mojSlownik)
  357. #
  358. # mojaAnkieta = Ankieta()
  359. # mojaAnkieta.wyswietl()
  360. # #mojaAnkieta.nazwisko = 'Kowalska'
  361. # mojaAnkieta.nazwisko = input('Podaj nazwisko: ')
  362. # mojaAnkieta.wiek = 18
  363. # mojaAnkieta.studia = 'Informatyka'
  364. # mojaAnkieta.lubi1 = 'Spacery z psem'
  365. # mojaAnkieta.wyswietl()
  366. # mojaAnkieta.lubi2 = 'Muzyka'
  367. # mojaAnkieta.wyswietl()
  368.  
  369. # print('Zadanie 1 Twoim zadaniem będzie zebranie informacji w formie ankiety od conajmniej 3 osób planujących')
  370. # print('swoje wakacje, zadaj odpowiednie pytania, zbierz interesujące Cię informacje')
  371. # print('Utwórz klasę Wakacje, conajmniej 6 pól np.: wiek, płeć, kraj, miasto, transport, liczbaOsob')
  372. # print('conajmniej 4 metod: pytanieWiek, ..., pytanieliczbaOsob, wyswietlAnkiete')
  373. # print('Zbierz informacje od conajmniej 2 użytkownikow, zadajac im pytania: o dane osobowe, wiek, kierunek studiow')
  374. # print('o to co lubią robić w wolnym czasie, a następnie wyniki zapisz do listy/słownika
  375.  
  376. class Wakacje(object):
  377. plec = []
  378. wiek = []
  379. kraj = []
  380. miasto = []
  381. transport = []
  382. liczbaOsob = []
  383.  
  384. def __init__(self):
  385. return(print('imie: - ', 'Wiek: -', 'Studia: -', 'Lubi: -'))
  386. def pytanie(self,noweNazwisko):
  387. self.plec = noweNazwisko
  388. return(self.plec)
  389. def pytanieDane(self, wiek1):
  390. self.wiek = wiek1
  391. return(self.wiek)
  392. def pytanieStudia(self, studia1):
  393. self.studia = studia1
  394. return (self.studia)
  395. def pytanieLubi(self, lubi11,lubi22):
  396. self.lubi1 = lubi11
  397. self.lubi2 = lubi22
  398. return([self.lubi1, self.lubi2])
  399. def wyswietl(self):
  400. mojSlownik = {'Imie_Nazwisko': self.nazwisko, 'Wiek': self.wiek, 'Studia_kierunek': self.studia,'Lubi': [self.lubi1, self.lubi2]}
  401. print(mojSlownik)
  402.  
  403. # mojaAnkieta = Ankieta()
  404. # mojaAnkieta.wyswietl()
  405. # #mojaAnkieta.nazwisko = 'Kowalska'
  406. # mojaAnkieta.nazwisko = input('Podaj nazwisko: ')
  407. # mojaAnkieta.wiek = 18
  408. # mojaAnkieta.studia = 'Informatyka'
  409. # mojaAnkieta.lubi1 = 'Spacery z psem'
  410. # mojaAnkieta.wyswietl()
  411. # mojaAnkieta.lubi2 = 'Muzyka'
  412. # mojaAnkieta.wyswietl()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement