Python/Dive Into

Z Wikiverzity

Postupujeme dle knihy:

  • Mark Pilgrim: Dive into Python 3 (Amazon)

Tato kniha je volně dostupná jak ke čtení on-line, tak i ke stažení v HTML nebo PDF formátu:

A existuje k ní i volně dostupný český překlad:

Vřele doporučujeme si tuto knihu prostudovat celou. Vytištěná kniha má asi 500 stránek A4. Po několika kapitolách ale zapomeneme, co bylo v první. Tato stránka proto slouží k vytváření jakéhosi výcucu, studijních poznámek či přehledu toho, co se v jednotlivých kapitolách probírá.

-1. What’s New in “Dive Into Python 3” (Co najdete v „Ponořme se do Pythonu 3“ nového)[editovat]

  • řetězce a bytes jsou něco jiného
  • všechny řetězce už jsou defaultně utf8
  • všechno jsou funkce – např. print()
  • a spousta dalších věcí
  • Vše je zkrátka jinak

Takže nejlépe jsou na tom asi ti, kteří si s Pythonem verze 1 ani 2 nic nezačali a naskakují rovnou do vlaku Python 3.

Pokud se někomu stane, že se mu dostane do ruky skript psaný v python2, může mu při zápase s přepisem do python3 pomoci skript:

2to3

0. Installing Python (Instalujeme Python)[editovat]

"Který Python je pro vás ten správný?" – Ten, který je nainstalován na vašem počítači.

V Ubuntu apod. na to existuje balík python3 Ovšem je tam upozornění, že "Python 3 není společností Canonical udržován".

Dobrá varianta je také:

IDE (Integrated Development Environments)[editovat]

Seznam viz: https://wiki.python.org/moin/IntegratedDevelopmentEnvironments

Běžné prostředí je:

V ubuntu je pro něj opět balík idle3

1. Your First Python Program (Váš první pythonovský program)[editovat]

Příklad programů na převod počtu bytes na human readable formát – viz humansize.py

Na tomto programu se demonstrují různé věci a odkazuje se na něj i v dalších kapitolách. (Prakticky je to jediný ucelený prográmek, se kterým se v prvních kapitolách setkáme.)

2. Native Datatypes (Přirozené datové typy)[editovat]

Python má těch datových typů mraky. Zde se probírají alespoň ty nejdůležitější:

  • boolean
  • number (číslo)
  • string (řetězec)
  • byte, byte array (bajt, pole bajtů)
  • list (seznam)
  • tuple (n-tice)
  • set (množina)
  • dictionary (slovník)
print (
'''Vytvoříme si 7 proměnných různých typů
a pak si necháme vypsat ty jejich typy:
--------------------------------------''')
booleovský = True
číslo      = 3.14
řetězec    = 'AHoJ světe!'
seznam     = [booleovský, číslo, řetězec]
n_tice     = (booleovský, číslo, řetězec)
množina    = {booleovský, číslo, řetězec}
slovník    = {'boolean':booleovský, 'number':číslo, 'string':řetězec}

print (booleovský, '...', type (booleovský))
print (číslo, '...', type (číslo))
print (řetězec, '...', type (řetězec))
print (seznam, '...', type (seznam))
print (n_tice, '...', type (n_tice))
print (množina, '...', type (množina))
print (slovník, '...', type (slovník))
Vytvoříme si 7 proměnných různých typů
a pak si necháme vypsat ty jejich typy:
--------------------------------------
True ... <class 'bool'>
3.14 ... <class 'float'>
AHoJ světe! ... <class 'str'>
[True, 3.14, 'AHoJ světe!'] ... <class 'list'>
(True, 3.14, 'AHoJ světe!') ... <class 'tuple'>
{True, 3.14, 'AHoJ světe!'} ... <class 'set'>
{'number': 3.14, 'string': 'AHoJ světe!', 'boolean': True} ... <class 'dict'>

3. Comprehensions (Generátorová notace)[editovat]

4. Strings (Řetězce)[editovat]

5. Regular Expressions (Regulární výrazy)[editovat]

6. Closures & Generators (Uzávěry a generátory)[editovat]

7. Classes & Iterators (Třídy a iterátory)[editovat]

8. Advanced Iterators (Iterátory pro pokročilé)[editovat]

9. Unit Testing (Unit Testing)[editovat]

10. Refactoring (Refaktorizace)[editovat]

11. Files (Soubory)[editovat]

12. XML (XML)[editovat]

13. Serializing Python Objects (Serializace pythonovských objektů)[editovat]

14. HTTP Web Services (Webové služby nad HTTP)[editovat]

15. Case Study: Porting chardet to Python 3 (Případová studie: Přepis chardet pro Python 3)[editovat]

16. Packaging Python Libraries (Balení pythonovských knihoven)[editovat]

A. Porting Code to Python 3 with 2to3 (Přepis kódu do Python 3 s využitím 2to3)[editovat]

B. Special Method Names (Jména speciálních metod)[editovat]

C. Where to Go From Here (Čím pokračovat)[editovat]

D. Troubleshooting (Odstraňování problémů)[editovat]

E. (Seznam oprav a úprav)[editovat]