# Hour of Code materiały
Typy zmiennych w Pythonie:
- Liczby całkowite - `int`
- Liczby zmiennoprzecinkowe - `float`
- Prawda lub Fałsz - `bool`
- Napisy - `string`
## Operacje na liczbach
```python=
x = 5
y = 12
# w kazdym z tych przypadkow przypisujemy wartosc do nowej zmiennej (mozna tez na przyklad wypisac wynik lub przypisac go do innej zmiennej)
wynik = x + y # dodanie dwoch liczb
wynik = x - y # odejmowanie
wynik = x * y # mnozenie
wynik = x / y # dzielenie
wynik = x // y # dzielenie calkowite (np 5 / 2 = 2, 3 / 3 = 1, 11 / 2 = 5)
wynik = x % y # reszta z dzielenia (np 5 % 2 = 1, 5 % 3 = 2, 2 % 2 = 0)
wynik = x ** y # potegowanie (2 ** 3 = 8, 3 ** 2 = 9)
```
## Wczytywanie
```python=
x = input("wpisz cos: ") # wczytanie z klawiatury
# !!! automatycznie wczytujemy stringa (napis), jesli chcemy wczytac cos innego mozemy zrobic:
liczba_calkowita = int(input("wpisz liczbe: "))
liczba_nie_calkowita = float(input("wpisz liczbe: "))
napis = input("podaj napis") # czasem wpisujac napis pojawia sie blad i trzeba go wpisac w apostrofach, na przyklad 'slowo'
```
## Wypisywanie
```python=
#mozemy wypisywac
print(x) # wypisanie na ekran wartosci zmiennej x
# jesli chcemy wypisac wiecej niz jedna rzecz to musimy zrobic to tak:
print("jakis napis " + str(zmienna) + " inny napis " + str(inna zmienna))
# w ten sposob zmieniamy zmienne na napisy, ktore mozemy dodac i razem wyswietlic
```
## Stringi
```python=
# litery i stringi zapisuje sie w cudzyslowie "napis" lub 'napis'
"hipo" + "potam" # => "hipopotam"
"bum" * 3 # => "bumbumbum"
#stringi to są listy liter, więc można na nich robić to co na listach
```
## Instrukcje warunkowe
```python=
x = 5
if x > 0:
print("x jest liczbą dodatnią")
elif x == 0:
print("x jest zerem")
else:
print("x jest liczbą ujemną")
imie = "Jan"
wiek = 23
if imie == "Jan" and wiek == 23:
print("Nazywasz sie Jan i masz 23 lata.")
```
## Pętle
```python=
for i in range(10):
print("normalnie bym to dziesięc razy pisał")
x = 1
while x <= 10:
print(x)
x = x + 1
```
## Listy
```python=
# zadeklarowanie listy
lista = [10, "napis", 4.20, 21.37, True]
# wypisanie 1 opcja
for element in lista:
print(element)
# wypisanie 2 opcja
print(lista)
#for na listach:
for elem in lista:
if elem in inna_lista:
print("element " + str(elem) + "jest w obu listach")
#tu mozna jeszcze cos innego w tym forze robić
# dodanie elementu do listy
lista.append("pan tu nie stał")
# stringi jako listy
napis = "1eden 2wa tr3y"
for znak in napis:
print(znak)
# dodanie w konkretny indeks
lista.insert(2, "pan też tu nie stał")
# usuniecie ostatniego elementu
lista.pop(1) # brak liczby oznacza ze usuwamy z konca
# usuniecie elementu o konkretnej wartosci
lista.remove(10)
# element n - ty od konca
print(lista[-3])
# "wycinanie" fragmentu
print(lista[1:4:2]) # poczatek : koniec (nie - włączny) : krok
# można tylko część podać
# obrócenie listy z użyciem "wycinania"
lista_2 = lista[::-1]
# kopiowanie
lista_3 = lista_2.copy()
# lub
lista_4 = lista[:]
# łączenie list
lista_nowa = pierwsza_lista + druga_lista
# składanie (kopia z otpowiednio zmienionymi elementami)
zmieniona_lista = [element * 2 for element in stara_lista]
```
## Listy wielowymiarowe
```python=
lista = [['drugi', 'wymiar', 'wow'], ['okay', 'lets', 'go']]
print(lista[1]) # => ['okay', 'lets', 'go']
print(lista[1][2]) # => 'go'
print(lista[1][2][1]) # => 'o'
```
## Funkcje
```python=
def dodaj(a, b): # w nawiasie wartosci jakie funkcja przyjmuje
return a + b # to co ma zwrócić
# zwracanie większej liczby wartości (krotki)
def wiele_wartosci():
return 1, 2, 3
a, b, c = wiele_wartosci()
print(a) # => 1
print(b) # => 2
print(c) # => 3
wszystko = wiele_wartosci()
print(wszystko) # => (1, 2, 3)
print(wszystko[0]) # => 1
# zamiana zmiennych z użyciem krotki
x_1 = 5
x_2 = 7
x_1, x_2 = x_2, x_1
```
## Przydatne funkcje wbudowane
```python=
max(3, 5) # => 5
min(3, 5) # => 3
round(5.23) # => 5
len([1, 2, 3]) # => 3 (długośc listy)
abs(-4) # => 4 (wartość bezwzględna)
sum([-2, 4, 6]) # => 8 (suma elementów w liście)
type() # zwraca typ zmiennej
range(x, y, k) #x - start, y - koniec, k - krok (co ile)
```
## Funkcje zaimportowane z bibliotek
```python=
from math import sqrt
print(sqrt(9)) # pierwiastek kwadratowy
```