1 of 30

Úvod do programování v Pythonu

Python - datové typy

Anastázie a Filip Sedlákovi

2 of 30

Python v terminálu

Spustíte Python 3 příkazem

Pokud máte více verzí Pythonu (Mac OS, Linux)

python3

Anaconda

python

3 of 30

Spuštění JupyterNotebooku

  • V terminálu
    • jupyter notebook
    • Pozor, musíte být v adresáři nebo v rodičovském adresáři, kde chcete JupyterNotebooky vytvářet
  • V menu start (pouze pro Windows)

4 of 30

Vytvoření IPython notebooku

Spustíte kód v buňce nebo Enter+Shift

5 of 30

Spyder - vývojové prostředí pro Python

Instalace (tento program nebudeme pro kurz potřebovat, jenom doporučení)

sudo apt-get install python3-pip python3-pyqt4

sudo pip3 install spyder

Spouštění

spyder

6 of 30

Python jako kalkulačka

>>> 1 + 1

2

>>> 5/2

2.5

>>> 3**2

9

7 of 30

Integer versus float

  • Integer - celé číslo

>>> type(10)

int

  • Float - desetinné číslo

>>> type(10.0)

float

8 of 30

Operace s int a float

  • Modulo - zbytek po dělení

>>> 10%5

0

>>> 10%3

1

  • Celočíselné dělení

>>> 10//3

3

9 of 30

Cvičení

  • Mnohodětný paša dostal dědictví - 1256983 zlatých mincí. Rozhodl se, že dědictví rozdělí rovnoměrně mezi svých 28 dětí. Kolik zlatých mu zbyde?

10 of 30

Booleovská hodnota

  • Pravda, Nepravda

>>> 10/2 < 3

False

>>> 3**2 == 45/5

True

  • True má hodnotu 1, False 0

>>> 1 == True

True

>>> 0 == True

False

11 of 30

Relační operátory

  • x == y # x se rovná y

>>> 3+7 == 5*2

True

  • x != y # x se nerovná y

>>> 3**2 != 3**3

True

  • x > y # x je větší než y

>>> 15 > 10

True

12 of 30

Relační operátory

  • x < y # x je menší než y

>>> 100 < 1000

True

  • x >= y # x je větší nebo rovno y

>>> 10 >= 9

True

  • x <= y # x je menší nebo rovno y

>>> 1 <= 2

True

13 of 30

Logické operátory

  • And - a

>>> 2*4 == 8 and 15-7 == 8

True

  • Or - nebo

>>> 2*4 == 8 or 15-10 == 8

True

  • Not - ne

>>> not (1+1 == 3)

True

14 of 30

Cvičení

  • Spočítejte, jestli následující výroky jsou pravdivé
    • Zbytek po dělení 1252 patnácti je menší než 8 nebo 35 je více než 100

15 of 30

Řetězec (string)

  • Složený datový typ
    • Skládá se z menších částic (písmena, číslice, atd.)
  • Pořadí částic řetězce je indexováno od 0

>>> 'PYTHON'[0]

'P'

PYTHON

0

1

3

2

5

4

6

16 of 30

Řetězec (string)

  • Na jeden řádek

>>> type('Nasťa')

str

>>> type("Nasťa")

str

  • Na více řádků

>>> """ Hodně dlouhá

... věta

... """

' Hodně dlouhá\nvěta\n'

17 of 30

Operace s řetězci

  • Určení délky řetězce

>>> len('python')

6

  • Výběr podřetězce [začátek: konec: krok]
    • Základní hodnoty [0: délka řetězce: 1]

>>> 'python'[::]

'python'

>>> 'python'[1::2]

'yhn'

>>> 'python'[-1]

'n'

18 of 30

Operace s řetězci

  • Spojení

>>> 'Sekvence DNA: ' + 'ACCGTACGT'

'Sekvence DNA: ACCGTACGT'

  • Opakování

>>> 'Repetitivní motiv: ' + 'ACC' * 3

'Repetitivní motiv: ACCACCACC'

  • Porovnávání

>>> 'ACC'[2] == 'GTC'[2]

True

19 of 30

Cvičení

  • Vytvořte ze dvou řetězců jeden:
    • '[[]]' + 'PYTHON ' → '[[PYTHON]]'

  • Vytvořte z jednoho řetězce jiný
    • 'Python' → 'onononon'
    • 'Rko' → 'kokokoko'

20 of 30

Operace s řetězci - metody

  • Výměna velkých písmen za malá - str.lower(), opačná metoda - str.upper()

>>> 'ACTGCTTCG'.lower()

'actgcttcg'

  • Napsat kapitálky - str.capitalize()

>>> 'praha je krásná!'.capitalize()

'Praha je krásná!'

  • Počítání podřetězce v řetězci - str.count()

>>> 'ACGGGTCATCGATT'.count('A')

3

21 of 30

Operace s řetězci

  • Vyhledávání v řetězci

>>> 'G' in 'AACCTCA'

False

  • A mnoho dalších metod...

>>> dir(str)

[..., 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', ...]

22 of 30

Kde hledat pomoc?

23 of 30

Změna datového typu

>>> int(10.0)

10

>>> float(10)

10.0

>>> str(10)

'10'

24 of 30

Cvičení

  • Jaký dostanete výsledek, když spustíte tyto příkazy?
    • print(7+3*2)
    • print('7' + str(3*2))
    • print('7' + '3*2')
    • print('7' + 3*2)

25 of 30

Proměnné

  • Proměnná se přiřazuje znakem ‘=’

>>> my_name = 'Nasťa'

>>> my_name

'Nasťa'

>>> My_name

Traceback (most recent call last):

File "<ipython-input-59-9804048db7e1>", line 1, in <module>

Name

NameError: name 'My_name' is not defined

26 of 30

Jak pojmenovávat proměnné v Pythonu?

  • In English

name jmeno

  • S dolním podtržítkem pro rozdělení slov

friend_name friendname

  • Napovězte tomu, kdo to po vás bude luštit

selected_color my_variable

  • Ne “O”, “I”, “l”

27 of 30

Metoda format

  • Nahrazuje proměnné v textu
  • Více informací a příklady: https://pyformat.info/

>>>name = 'Nasťa'

>>>age = 30

>>>'Ahoj, jsem {} a je mi {} let.'.format(name, age)

'Ahoj, jsem Nasťa a je mi 30 let.'

28 of 30

Cvičení

  • Uložte do proměnné koníček
  • Pomocí metody format vytiskněte řetězec 'Můj koníček je .' a doplňte koníček

29 of 30

Domácí úkol

  • V GitHubu pod svým jménem vytvořte repozitář 'python_biol_2017'
  • U sebe na počítači vytvořte Jupyter notebook 'python1'
  • Úkol 1
    • Vytiskněte na obrazovku slovo 'python' pozpátku velkými písmeny
  • Úkol 2
    • Zadefinujete 2 proměnné apples a oranges
    • Pomocí metody format a nadefinovaných proměnných vytiskněte řetězec
    • Příklad
      • apples = 5, oranges = 7
      • 'Mám 5 jablek a 7 pomerančů, tedy 12 kusů ovoce'
  • Jupyter notebook nahrajte na GitHub a pošlete emailem odkaz na něj nejpozději do 7. 11. 2017 11:00 CET

30 of 30

Vytvoření .gitignore

  • Nezapomeňte vytvořit před prvním push notebooku na GitHub!
  • Lze vytvořit během vytvoření repositáře na GitHubu
  • Vzorový .gitignore