Advertisement
Guest User

Untitled

a guest
Jun 14th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.94 KB | None | 0 0
  1. # FUNKCJE
  2. def func1(dane_wejsciowe):
  3. wynik = []
  4. for i in dane_wejsciowe:
  5. print("func1 jest teraz na elemencie {}".format(i))
  6. wynik.append(i)
  7. return dane_wejsciowe
  8.  
  9.  
  10. def func2(dane_wejsciowe):
  11. x = [(i, print("func2 jest teraz na elemencie {}".format(i))) for i in dane_wejsciowe]
  12. y = [i[0] for i in x] # prostu je wyniki bo poprzednio printowanie stworzyło krotki (element,None)
  13. # krok y nie ma znaczenia
  14. # komentarze w kodzie są złe... tutaj to tylko obrazowanie przykładu
  15. # docstringi nie są złe
  16. return y
  17.  
  18.  
  19. DANE = [1, 2, 3, 4, 5]
  20.  
  21. krok1 = func1(DANE) # func1 produkuje i przekazuje CAŁĄ LISTĘ DO ZMIENNEJ
  22. krok2 = func2(krok1) # func2 pobiera CAŁĄ LISTĘ wyników i zwraca CAŁĄ LISTĘ przerobionych danych
  23.  
  24. # dane przerabiam dodając w każdej funkcji 1
  25.  
  26. print("-" * 10 + "oddzielam drukowane sekcje" + "-" * 10)
  27.  
  28.  
  29. # GENERATORY
  30.  
  31. def gen1(dane_wejsciowe):
  32. for i in dane_wejsciowe:
  33. print("gen1 jest teraz na elemencie {}".format(i))
  34. yield i # słowo kluczowe yield zamiast return, funkcja oddaje kolejne elementy gdy sie ją o to prosi
  35.  
  36.  
  37. def gen2(dane_wejsciowe):
  38. for i in dane_wejsciowe:
  39. print("gen2 jest teraz na elemencie {}".format(i))
  40. yield i # słowo kluczowe yield zamiast return, funkcja oddaje kolejne elementy gdy sie ją o to prosi
  41.  
  42.  
  43. krok11 = gen1(DANE) # funkcja przyjmuje CAŁE DANE (ale tylko tutaj, gdy odczytujesz plik to FOR po liniach)
  44. # krok11 to nie pełen wynik, to obiekt "generatora",
  45. # czyli funkcji która, gdy po niej iterujesz, zwraca wynik dopiero gdy o niego poprosisz
  46. krok12 = gen2(krok11) # w kroku12 funkcja gen2 pobiera generator i wykonuje swoje obliczenia po 1 elemencie,
  47. # czyli jak zobaczysz, najpierw element '1' przechodzi przez obie funkcje, potem element '2' itp.
  48.  
  49. krok13 = list(krok12)
  50. # DOPIERO TUTAJ ŻĄDASZ WYKONYWANIA SIE WSZYSTKICH FUNKCJI, do tego miejsca nic sie nie wyprintuje
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement