#!/usr/bin/env python # coding: utf-8 # ### Operacje logiczne # In[1]: # zacznijmy od porownań # czy zero jest mniejsze niż jeden print('0 < 1 : ',0 < 1) #True # czy zero jest większe niż jeden print('0 > 1 : ',0 > 1) #False # czy zero jest mniejsze lub równe jeden print('0 <= 1 : ',0 <= 1) #True # czy zero jest większe lub równe jeden print('0 >= 1 : ',0 >= 1) #False # czy jeden jest równe zero print('1 == 0 : ',1 == 0) #False # czy jeden jest rowne jeden print('1 == 1 : ',1 == 1) #True # czy jeden jest różne od zera print('1 != 0 : ',1 != 0) #True # czy jeden jest rózne od jeden print('',1!= 1) #False # ### Typ logiczny True/False # In[2]: # typ logiczny traktowany jako całkowity True =1, False =0 print('True + True = ',True + True, type(True + True)) print('True - False = ',True - False,type(True + True)) print('True * False = ',True * False,type(True + True)) print('True / False =',True / False,type(True + True)) # ZeroDivisionError: division by zero # In[3]: # typ logiczny traktowany jako całkowity True =1, False =0 print('True and True = ',True and True, type(True and True)) print('True or False = ',True or False,type(True or True)) print('not False = ',not False,type(not False)) print('not True =',not True,type(not True)) # ### Instrukcja warunkowa # In[4]: # instrukcja warunkowa if # wykona się jeśli wartość logiczna warunku jest prawdziwa if True: print('Prawda jest najważniejsza\n') # nie wykona się jeśli wartość logiczna warunku jest fałszywa if False: print('Ta instrukcja się nie wykona.') # wykonanie polecenia1 jeśli warunek jest prawdziwy a polecenie2 jeśli falszywy ''' if ( warunek ): polecenie1 else: polecenie2 ''' a=100 if a<50: print('a jest mniejsze niż 50') else: print('a jest większe lub równe 50') # In[5]: a=53 # instrukcja warunkowa z elif i else if a > 50: # to się wykona jeśli warunek jest prawdziwy print("a jest większe niż 50") elif a == 50: # w przeciwnym przypadku, jeśli warunek jest prawdziwy print("a jest równe 50") else: # w pozostałych przypadkach print("a jest mniejsze niż 50") a=50 # instrukcja warunkowa z elif i else if a > 50: # to się wykona jeśli warunek jest prawdziwy print("a jest większe niż 50") elif a == 50: # w przeciwnym przypadku, jeśli warunek jest prawdziwy print("a jest równe 50") else: # w pozostałych przypadkach print("a jest mniejsze niż 50") a=47 # instrukcja warunkowa z elif i else if a > 50: # to się wykona jeśli warunek jest prawdziwy print("a jest większe niż 50") elif a == 50: # w przeciwnym przypadku, jeśli warunek jest prawdziwy print("a jest równe 50") else: # w pozostałych przypadkach print("a jest mniejsze niż 50") # In[6]: # wykorzystanie funkcji input print("Podaj liczbę:", end=' ') raw_x = input() # pobieramy napis z wejścia standardowego (klawiatury) x = eval(raw_x) # próba interpretacji napisu tak jak wyrażenia języka Python print('Wprowadzona liczba w stanie surowym: ',raw_x,type(raw_x),' Po ewaluacji :',x, type(x)) if x<10: print('Wprowadzona liczba jest mniejsza niż 10') elif x == 10: # w przeciwnym przypadku, jeśli warunek jest prawdziwy print("Wprowadzona liczba jest równa 10") else: # w pozostałych przypadkach print("Wprowadzona liczba jest większa niż 10") # ### Petle # #### Petla for # In[7]: # iteracja po liczbach całkowitych for licznik in (1,2,3,4): print('liczni k= ',licznik) # iteracja po elementach napisu napis1='Ala ma kota' for litera in (range(len(napis1))): print ('Litera = ', napis1[litera]) # iteracja po liście owoce = ['gruszka', 'jabłko', 'śliwka'] for owoc in range(len(owoce)): print ('Owoc =',owoce[owoc] ) # petla for z dodatkowa klauzula else: na koncu for licznik in range(1,11): print('licznik =',licznik) else: print('Koniec i bomba!') for licznik in range(10) : print('licznik = ',licznik,' ',end='\n') else: print('Koniec i bomba!') # In[8]: # figura 1 for i in range(10): print(str(i) * i) # In[9]: # https://www.w3resource.com/python-exercises/python-conditional-exercise-17.php # małe ćwiczenie nd dwie petle for wraz z instrukcjami warunkowymi result_str=""; for row in range(0,7): for column in range(0,7): if (((column == 1 or column == 5) and row != 0) or ((row == 0 or row == 3) and (column > 1 and column < 5))): result_str=result_str+"*" else: result_str=result_str+" " result_str=result_str+"\n" print(result_str); # #### Petla while # In[10]: # wykonuj blok instrukcji dopóki warunek jest spełniony #while warunek: # instrukcje i=0 while i<5: # dopoki warunek jest prawdziwy print('Iteracja : ',i) i=i+1 # In[11]: # z dodaniem else: i=0 while i<5: # dopoki warunek jest prawdziwy print('Iteracja : ',i) i=i+1 else: # wykona się na koncu petli print('Koniec pętli.') # In[12]: # działa nawet dla pustej petli i=0 while i>5: # dopoki warunek jest prawdziwy, w tym przypadku nigdy print('Iteracja : ',i) i=i+1 else: # wykona się na koncu petli print('Koniec pustej pętli.') # #### Dodatkowe sterowanie w petli # break - przerwij pętlę # # # continue - przerwij obecną iterację # # pass - nie rób nic # # else - wykonuj jeśli pętla zakończyła się inaczej niż break # # # # #### break # In[13]: for i in range(1,6): # od 1 do 5 if i>3: # nie wykona się Iteracja dla i : 4,5 break print('Iteracja dla i :',i) # #### continue # In[14]: for i in range(1,6): # od 1 do 5 if i%2==0: continue # pomijamy parzyste i print('Iteracja dla i :',i) # #### pass # In[15]: for i in range(1,6): # od 1 do 5 if i%2==0: pass # nic nie rób print('Iteracja dla i :',i) # In[16]: for i in range(1,11): # od 1 do 10 if i%2==0: pass # nic nie rób else: # wykona się dla nieparzystych i print('Iteracja dla i :',i) # #### else # In[17]: # wykonanie instrukcji na końcu pętli for i in range(1,6): # od 1 do 5 if i%2==0: pass # nic nie rób print('Iteracja dla i :',i) else: print('Koniec pętli.') # In[18]: # Przyklad petli for z else, który nie zostanie wykonany . for i in range(1,11): # od 1 do 10 if i%2==0: pass # nic nie rób print('Iteracja dla i :',i) if i%5==0: # konczymy na i=5 break else: # ta czesc nie wykona się print('Koniec pętli.') # ### Pakiety # In[19]: # importowanie pakietu import this # In[20]: # Dokumentacja danego pakietu/modułu help(this) # In[21]: # lista obiektów, które zawiera dany pakiet dir(this) # In[22]: # wyswietlenie zawartości jednego z nich # odwołanie w formacie nazwapa_pkietu.nazwa_obiektu print('this.c = ',this.c,' type :', type(this.c)) # #### Aliasy # In[23]: # Podczas importu pakietu można uzyc aaliasu import this as zp # dostep do zmiennej c formacie nazwa_aliasu.nazwa_obiektu print('zp.c = ',zp.c,' type :', type(zp.c)) # dostep z poprzedniego importu bez aliasu print('this.c = ',this.c,' type :', type(this.c)) # In[24]: import sys # usuwamy załadowany pakiet math del sys.modules['math'] # importujemy go ponownie import math as m # dostep do wartości PI i E print('m.pi = ',m.pi,' type :', type(m.pi)) #m.pi = 3.141592653589793 type : print('m.e = ',m.e,' type :', type(m.e)) # m.e = 2.718281828459045 type : # dostep bez podania aliasu print('this.c = ',math.pi,' type :', type(math.pi)) # NameError: name 'math' is not defined # #### Często stosowane pakiety # In[25]: # czesto wykorzystujemy aliasy przy imporcie znanych pakietow import pandas as pd # wersja pakietu pd print (pd.__version__) # 0.20.3 # gdzie został zainstalowany pakiet print(pd) # import numpy as np # wersja pakietu np print (np.__version__) # 1.15.1 # gdzie został zainstalowany print(np) # import podmodułu pyplot z pakietu patplotlib jako alias plt import matplotlib.pyplot as plt get_ipython().run_line_magic('matplotlib', 'inline') # Proste demo # generowanie 100 pseudolosowych liczb liczby=np.random.rand(100,1) # budowa histogramu plt.hist(liczby) # wyswietlenie plt.show() # #### Importowanie obiektów do globalnej przestrzeni nazw # In[26]: # importowanie z pakietu this wyłącznie zmiennej c from this import c print('c = ',c,' type :', type(c)) # importowanie z pakietu this wszystkich obiektow # nie jest to polecane, gdzyż skutecznie zaśmieci # nam globalna przestrzeń nazw c=15.0 print('c = ',c,' type :', type(c)) from this import * # zmienna c została nadpisana wartością 97 z pakietu print('c = ',c,' type :', type(c)) # In[29]: # co jeśli brakuje nam zainstalowanego pakietu # importujemy pakiet folium do wizualizacji map import folium # ModuleNotFoundError: No module named 'folium' # pakiet nie został zainstalowany # In[30]: # instalacja pakietu folium # wykorzystujemy instalato pip dostepny z poziomu Pythona get_ipython().system('pip install folium') # In[32]: '''pojdzmy krok dalej i zbudujmy prosty mechanizam wykrywający ze dany pakiet nie jest zainstalowany ''' import sys # sprawdzenie czy dany pakiet został zainstalowany if not 'folium' in sys.modules: # instalujemy pakiet get_ipython().system('pip install folium') # importujemy pakietu import folium # sprawdzamy jego wersje print ('Folium version :',folium.__version__)