---
# System prepended metadata

title: Hour of Code materiały
tags: [KSI]

---

# 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
```
