291 lines
5.3 KiB
Python
291 lines
5.3 KiB
Python
# Zajęcia 2018.05.13
|
|
# kod z Podstawy 2.py z moimi notatkami
|
|
|
|
|
|
def dwojak(x):
|
|
x *= 2
|
|
return x
|
|
|
|
|
|
def dwojak2(x):
|
|
x = x * 2
|
|
return x
|
|
|
|
l = [1, 2, 3]
|
|
#ll = l[:] ## l sie nie zmieni
|
|
ll = l # l sie zmieni, stworz inna nazwe dla tego samego obiektu; jedne obiekt ma dwie różne nazwy - tak się zachowują obiekty mutable
|
|
s = "123"
|
|
# lista, slownik, set są mutable, są zawsze przekazywane przez referencje; ale tuple tak nie działają
|
|
|
|
# w przypadku tej funkcji dwojak i listy robimy 2 kopie i laczymy w jedna
|
|
#dwojak(l)
|
|
dwojak(ll)
|
|
dwojak(s)
|
|
|
|
print(l)
|
|
print(s)
|
|
print(dwojak(1))
|
|
|
|
# no i gówno wiadomo
|
|
|
|
# ## Mutable i Immutable
|
|
#
|
|
# ### Mutable
|
|
# * listy,
|
|
# * słowniki,
|
|
# * sety,
|
|
# * własnoręcznie zdefiniowane klasy.
|
|
#
|
|
# ### Immutable
|
|
# * liczby: inty i floaty,
|
|
# * napisy,
|
|
# * tuple.
|
|
|
|
# ## Nieoczywistości
|
|
|
|
# In[11]:
|
|
|
|
|
|
def dwojak1(x): x *= 2
|
|
|
|
|
|
def dwojak2(x):
|
|
x = x * 2
|
|
print("F:", x)
|
|
|
|
|
|
l = [1, 2, 3]
|
|
dwojak1(l)
|
|
print(l)
|
|
|
|
l = [1, 2, 3]
|
|
dwojak2(l)
|
|
print(l)
|
|
|
|
# In[17]:
|
|
|
|
|
|
l = [1, 2, 3]
|
|
e = l[:]
|
|
e.append(4)
|
|
print(l)
|
|
print(e)
|
|
|
|
# In[19]:
|
|
|
|
|
|
e = []
|
|
f = [e for i in range(3)]
|
|
"""
|
|
f = [i * 2 for i in range(3)] # krotszy sposobna tworzenie listy, range(3) = 0,1,2
|
|
lub
|
|
f=[]
|
|
for i in range(3):
|
|
f.append(i * 2)
|
|
robia to samo, tylko pierwszy zapis jest krotszy
|
|
"""
|
|
f[0].append(1) # wez pierwszy element listy i dodaj 1 do listy
|
|
print(f)
|
|
|
|
# ## To może ``tuple``?
|
|
# * stały rozmiar,
|
|
# * immutable,
|
|
# * mogą być kluczami w słownikach
|
|
|
|
# In[25]:
|
|
|
|
"""
|
|
tuple, krotki - lista, która nie może się zmieniać, nie możemy dodawać elementów do krotki
|
|
nawiasy okrągłe
|
|
tuple mogą być kluczem w słowniku
|
|
listę nie można przekazać jako klucz do słownika
|
|
Można zamienic listę na tuple
|
|
|
|
t = [1, "napis", "9")
|
|
t = tuple(t) # zamienia listę na tuple
|
|
print(t)
|
|
print(len(t))
|
|
print({t: None})
|
|
|
|
s_oceny = {}
|
|
s_ocny[("Jan", "Kowalski)] = 1990
|
|
|
|
Gdy do krotki trzeba jednak coś dodac:
|
|
tworzymy nową krotke t i konkatenujemy
|
|
t = ("Jan", "Kowalski") + (1990,) # (1990,) oznacza krotke jednoelementowa, musi byc przecinek
|
|
print(t)
|
|
print(t[-1]) # pokaz ostatni element, indexowanie jest takie samo jak w listach
|
|
print(t[:2])
|
|
"""
|
|
|
|
# funkcja len - liczba elementów
|
|
|
|
t = (1, "napis", [])
|
|
t[-1].append(0)
|
|
print(t)
|
|
print(len(t)) # ilość elementów w liście
|
|
print({t: None})
|
|
|
|
|
|
# ## Funkcje cz. 2
|
|
|
|
# In[36]:
|
|
|
|
|
|
def suma(*args):
|
|
return sum(args)
|
|
|
|
"""
|
|
chcemy pzekazać funkci dowolna ilość elementów
|
|
tu *args jest listą elementów
|
|
|
|
funkcja sum jest wbudowana w Pythona
|
|
print(sum([1,1,1,1,11])
|
|
"""
|
|
|
|
print(suma(1, 2, 3, 4, 5))
|
|
|
|
"""
|
|
def greet_me(z):
|
|
print("pozdr",z)
|
|
|
|
greet_me("Tomek")
|
|
|
|
|
|
|
|
def greet_me(z, x="Pozdr"):
|
|
print(x,z)
|
|
|
|
greet_me("Tomek", "czesc") # czesc nadpisze Pozdr
|
|
|
|
greet_me(x="cześć", z="Tomek")
|
|
|
|
greet_me("cześć", "Tomek")
|
|
|
|
Przydaje się to np. w Pandas, gdy czesc argumanetow chcemy uruchomic z wartosciami domyslnymi, a czesc chcemy zmienic
|
|
|
|
|
|
def greet_me(z, x="Pozdr"):
|
|
print(x,z)
|
|
return x, x*2
|
|
|
|
x1,x2 = greet_me(Czesc","Tomaj") # ilość argumentów musi się zgadzać
|
|
x3 = greet_me(Czesc","Tomaj") # tworzy krotkę
|
|
print(x1,x2)
|
|
print(x3)
|
|
"""
|
|
|
|
def greet_me(z=None, **kwargs):
|
|
if kwargs is not None:
|
|
for key, value in kwargs.items():
|
|
print("%s == %s" % (key, value))
|
|
|
|
|
|
greet_me(a=1, b=(3, 4))
|
|
|
|
#
|
|
# ## Generatory
|
|
#
|
|
# In[38]:
|
|
|
|
"""
|
|
ord - f. ktora zwraca liczbę dla każdego znaku
|
|
|
|
def Range(x):
|
|
i=0
|
|
while i<x:
|
|
yield i
|
|
i+=1
|
|
"""
|
|
|
|
def alfaRange(x, y):
|
|
for i in range(ord(x), ord(y)):
|
|
print(i)
|
|
yield chr(i) # dziala jak return
|
|
|
|
|
|
for c in alfaRange('a', 'e'):
|
|
print(c)
|
|
|
|
#
|
|
# ## Operacje na plikach
|
|
#
|
|
|
|
# In[45]:
|
|
|
|
|
|
plik = open("haslo.txt", 'r') # sciezka wzgledna lub bezwzgledna do pliku; r=read only
|
|
for linia in plik.readlines(): # metoda readlines przechodzi linia po linii
|
|
print(linia.strip()) # usuwa spacje i biale znaki z koncow np. znak konca linii
|
|
|
|
# print(plik.read())
|
|
# print(">>")
|
|
|
|
plik.close() # musimy zamknac plik
|
|
|
|
# In[47]:
|
|
|
|
|
|
with open("haslo.txt", 'r') as plik: # drugi sposob otwieraia pliku, popularniejszy
|
|
for linia in plik.readlines():
|
|
print(linia) # mogą byc linie przerwy ze względu na znaki końca linii
|
|
# print(plik.read())
|
|
|
|
# In[48]:
|
|
|
|
|
|
with open("haslo2.txt", 'w') as plik: # w = tryb do zapisu, nadpisujemy go
|
|
# w+ = to o dodamy bedzie dodane na sam koniec
|
|
|
|
for word in ('corect', 'horse', 'battery', 'staple'):
|
|
plik.write(word)
|
|
plik.write('\n')
|
|
with open("haslo2.txt", 'w+') as plik:
|
|
plik.writelines([' '.join(('corect', 'horse', 'battery', 'staple'))])
|
|
|
|
# # Korzystanie z modułów
|
|
|
|
# ## Importowanie
|
|
|
|
# In[49]:
|
|
|
|
|
|
import os
|
|
# import pandas as pd # ładuje pandas z alaiasem pd
|
|
print(os.name)
|
|
|
|
from os import getenv # nie importuje calosc, tylko okreslona funkcje getenv
|
|
|
|
print('Nazwa uzytkownika: {}'.format(getenv("USER")))
|
|
|
|
# In[50]:
|
|
|
|
|
|
from collections import * # importuje wszystko
|
|
|
|
print(Counter("konstantynopolitańczykowianeczka")) # funkcja couner liczy elemeny, np. ila razy jakas litera pojawił się
|
|
|
|
import numpy as np
|
|
|
|
np.array([[1, 3, 4, 5]], dtype='float32')
|
|
|
|
# ## Instalacja
|
|
#
|
|
# * lokalnie (per użytkownik) lub globalnie
|
|
# * pyCharm lub linia komend, np. ``pip install --user flask`` lub ``python -m pip install --user flask``
|
|
|
|
# ## Wczytywanie z klawiatury
|
|
|
|
# In[51]:
|
|
|
|
|
|
name = input("What's your name?\n")
|
|
print("Welcome home, {}.".format(name))
|
|
|
|
# In[ ]:
|
|
|
|
|
|
liczby = eval(input("Podaj liczby"))
|
|
print(sum(liczby))
|
|
|