Chapter 1 Introduction To Python¶
Keynote¶
1.1 Python Timi Cu Zeidah A Si?¶
- Python cu high-level programming language a si i, Guido Van Rossum nih a sermi a si — amah cu Benevolent Dictator For Life (Lung-á¹ha mi Uktu Bawi Zungzal) tiah dawt tein an auh.
- Python cu 1991 kum ah a voikhatnak an rak chuah. Nihin ah cun Windows le Linux tel in Operating Systems tampi caah Python interpreters pawl hmuh khawh an si cang.
- Python a á¹ialtu (programmers) pawl cu a caan ah Pythonists asiloah Pythonistas tiah an auh tawn hna.
1.2 Python A Lar Tuknak A Ruang Pawl¶
Python a lar tuknak a ruang tampi a um. Cu hna lak i a cheu cu:
(a) A Man Pek A Hau Lo (Free):
- Python cu hman le á¹henh (distribute) a man a hau lo i community nih an bawmh/support.
- Python interpreter cu platform ngan pawl dihlak ah hmuh khawh a si.
(b) Software A Ṭhat Ning (Software Quality):
- Traditional le scripting languages dang nak in a á¹ha deuh.
- Code rel a fawi, cucaah hman á¹han (reusable) le zohkhenh (maintainable) a fawi.
- Advance reuse mechanisms caah bawmhnak (support) a um.
© Developer Pawl Rian Ṭuan A Raan (Developer Productivity):
- Statically typed languages dang nak in a á¹ha deuh.
- Code a tawi/hme deuh.
- Type, debug le maintain tuah ding a tlawm deuh.
- A caan a la tukmi compile le link steps pawl a hau lo.
(d) Program A Dang Ah Ṭhial A Fawi (Program Portability):
- Python programs cu platforms tam deuh ah thlen hau lo in a ning tein (unchanged) a run kho.
- Python cu atu lio hman mi platforms ngan pawl dihlak ah a run kho.
- Program kha platform thar ah á¹hial tik ah a tlangpi in cut le paste tuah lawng a hau tawn. Hihi GUI, DB access, Web programming, OS interfacing, Directory access, tbk., ca zong ah a hmaan.
(e) Bawmtu Libraries Pawl (Support Libraries):
- Text pattern matching in networking tiang library support a á¹hawng.
- Third party libraries (midang tuah mi) tampi hmuh khawh a si.
- Web site sernak, Numeric programming, Game development, Machine Learning tbk. caah Libraries an um.
(f) Hmun Khat Ah Fonh Khawhnak (Component Integration):
- C, C++ libraries le Java components pawl a au/hmang kho.
- COM, .NET tbk. frameworks pawl he zong rian a á¹uan á¹i kho.
- Network cung ah SOAP, XML-RPC, CORBA hman in rian a á¹uan kho.
- Glue code (a benh tu code) á¹ha tein hman ahcun, Python nih C++, Java, C# classes pawl a subclass kho, mah nih program a ngeih ciami kha a karh ter.
- Product sersiam (customization) le chap (extension) caah hman a si tawn.
(g) Nuamhnak (Enjoyment):
- Hman a fawi (Ease of use).
- Built-in toolset (hriamnam) á¹ha a ngei.
- Programming tuah cu rian á¹uan nak in nuamhnak a si deuh.
1.3 Python Hi Zei Nih Dah A Dang ter?¶
(a) A Ṭhawng (Powerful):
- Dynamic typing.
- Variable declaration tuah a hau lo.
- Automatic allocation le Garbage Collection a ngei.
- Classes, modules le exceptions pawl a support.
- Componentization le reuse (hman á¹han) a ngah ter.
- Containers a á¹hawng mi - Lists, Dictionaries, Tuples, tbk. an um.
(b) Tuah Cia Mi Thil Pawl (Ready-made stuff):
- Joining (i peh), slicing (a cheu), sorting (a ning cang in chiah), mapping (map tuah), tbk. caah support a um.
- Library a á¹hawng mi a ngei.
- Third-party utilities a phu in tampi a um.
© Hman A Fawi (Ease of use):
- Type le run (ca á¹ial le tuahter) a ngah colh.
- Compile le link steps a hau lo.
- Interactive programming experience a si.
- Rapid turnaround (rian á¹uan a rang).
- Programs pawl cu an fawi deuh, an hme deuh, i an flexible deuh.
1.4 Python Hi Khoi Ka Ah Dah Hman A Si?¶
Python cu thil phunphun tuahnak ah hman a si. Cu hna cu:
- System programming
- GUI applications sernak
- Internet scripting
- Component integration
- Database programming
- Rapid prototyping
- Numeric le Scientific programming
- Game programming
- Robotics programming
1.5 Nihin Ah Ho Nih Dah Python An Hman?¶
Bu (Organizations) tampi nih Python cu thil phunphun caah an hman. Cu hna cu:
- Google - Web search system ah
- YouTube - Video i hrawmh (Sharing) nak rian ah
- Bit-torrent - Peer to Peer file sharing system
- Intel, HP, Seagate, IBM, Qualcomm - Hardware hneksaknak (testing)
- Pixar, Industrial Light and Magic - Movie animation
- JP Morgan, Chase, UBS - Financial market hmailei kong tuaknak (forecasting)
- NASA, FermiLab - Scientific programming
- iRobot - Commercial robot vacuum cleaners
- NSA - Cryptographic le Intelligence analysis
- IronPort - Email Servers
1.6 Programming Paradigms (Rian Ṭuan Ning Phunglam)¶
- Paradigm timi cu tawlrelnak phunglam (organization principle) a si. Model tiah zong an auh.
- Programming paradigm/model cu computer programs sersiam tik i a structure le a chung um mi thil (elements) sak ning style a si.
- Programming models tampi a um, tahchunhnak ah Functional, Procedural, Object-oriented, Event-driven, tbk.
- Language tampi nih paradigms pakhat asiloah cu nak tam hman khawh nak a pek. Tahchunhnak ah, Python nih Functional, Procedural, Object-oriented le Event-driven programming models a support.
- A caan ah Functional programming hman a á¹hat deuh nak a um i, a caan ah Procedural programming hman a á¹hat deuh nak a um ve.
- Paradigms pawl cu pakhat le pakhat i thleidan (mutually exclusive) a hau mi an si lo. Program pakhat chung ah paradigms phunphun cawh in hman khawh a si.
1.6.1 Functional Programming Model¶
- Functional programming nih buaibainak (problem) kha functions set ah a á¹hen. Mah functions pawl cu program i a logic hrampi an si.
- Functions nih input parameters an la i outputs an chuah. Python nih functional programming techniques a simi lambda, map, reduce le filter pawl a pek. Hi hna cu Chapter 15 ah fianh a si lai.
- Hi model ah, tuaknak (computation) kha mathematical functions tuaknak bantuk in chiah a si. Tahchunhnak ah, nambar pakhat i factorial value, asiloah nth Fibonacci nambar hmuh ding ah a tanglei functions hi hman khawh an si:
factorial(n) = 1 if n == 0
= n * factorial(n - 1) if n > 0
fibo(n) = 0 if n == 0
= 1 if n == 1
= fibo(n - 2) + fibo(n - 1) if n > 1
1.6.2 Procedural Programming Model¶
- Procedural programming nih buaibainak (problem) kha procedures set ah a á¹hen. Mah procedures pawl cu program i a logic hrampi an si.
- Procedures nih input parameters an la i outputs an chuah. Python nih functions, classes, modules, tbk. bantuk procedural programming techniques a pek. Hi hna cu Chapter 15 ah fianh a si lai.
- Hi model ah, tuaknak (computation) kha procedures tuaknak bantuk in chiah a si. Tahchunhnak ah, nambar pakhat i factorial value, asiloah nth Fibonacci nambar hmuh ding ah a tanglei procedures hi hman khawh an si:
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n - 1)
def fibo(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return fibo(n - 2) + fibo(n - 1)
- Procedure pakhat i a output value cu a arguments (input) cung lawng ah aa hngat, cucaah value aa khat mi argument in procedure auh a si paoh ah result aa khat mi zungzal a chuah. Cucaah, parallel execution (a rual in rian á¹uan) caah a á¹ha tuk.
- Procedure nih variables dang cung ah side effects (hnorsuannak) a ngei lo (state kha thlen lo in a um).
- Procedural programming model cu a caan ah 'Imperative' programming paradigm tiah an auh, a ruang cu statements asiloah instructions (fialnak) hman in programming tuah a si, expressions asiloah declarations hman in a si lo.
- Procedural programming nih buaibainak kha statement pakhat hnu pakhat (procedure) tuah in a phit. A tuah ning (steps) kha a ningcang tein a zulh (specific order).
- Amah zong nih functions a hman ve, asinain functional programming i hmanmi mathematical functions bantuk an si lo. Functional programming cu expressions ah a lung a thi, Procedural programming cu statements ah a lung a thi.
- Statements pawl nih values (man) an ngei tawn lo; cu can ah, conceptual machine i a state (sining) tu an thlen.
- Language expression aa khat mi nih a caan aa dan tik ah values aa dang a chuah khawh, cucu program a kal lio i a global state cung ah aa hngat. Cun, functions nih program i a state an thlen khawh.
- Procedural programming model cu 'Imperative' programming tiah zong auh a si, a ruang cu statements hmang in state kha a ningcang tein (explicit sequence) a thlen caah a si.
1.6.3 Object-oriented Programming Model¶
- Hi model nih computer chung ah objects a ummi vawlei hmete ser in vawlei taktak (real world) a cawng (mimics).
- University system ah cun objects cu VC, Professors, Non-teaching staff (cachim lo in rian a á¹uanmi), students, courses, semesters, examinations, tbk. an si kho.
- Object pakhat cio nih state (values) le behavior (interface/methods) a ngei. Objects nih an state le behavior cu anmah sernak class sin in an ngah.
- Objects pawl cu pakhat le pakhat messages i kuat in pehtlaihnak an tuah, cucu pakhat le pakhat i an interface methods auh (calling) in a si.
1.6.4 Event-driven Programming Model¶
- Hi model hi windows, check boxes, buttons, combo-boxes, scroll bars, menus, tbk. a ngeimi GUI applications programming tuahnak ah hman a si tawn.
- Hi elements pawl he kan i tongh tik ah (tahchunhnak ah button hmeh, asiloah scrollbar á¹hial, asiloah menu item thim) events (thil cang) a chuak i hi elements pawl nih messages an chuah (emit). Hi GUI elements he register tuah mi listener methods an um i, cu hna nih events kha an lehrulh (react).
- Events a chuah ning hi a caan aa zulh ning a um lo (guaranteed sequence a um lo - GUI elements kan hman ning cung ah aa hngat), cucaah listeners pawl nih asynchronous (a caan aa khat lo in) manner in an tawlrel khawh a hau.
Exercises¶
[A] A tanglei biahalnak hna hi phi tuah:
- a. Python hman a sinak hmun (fields) 5 chim tuah.
- b. Event-driven programming hi khoi ka ah dah hman a si tawn?
- c. Zeicahdah Python hi portable language tiah an auh?
- d. Hi chapter ah fianh mi programming models phunphun hna i an feature a biapi bik cu zeidah a si?
- e. A tanglei lak ah a hnu lei hi Python i a feature a si lo mi a si?
- a. Static typing
- b. Dynamic typing
- c. Run-time ah error tawlrelnak (error numbers hmang in)
- d. Lists, Dictionaries, Tuples tbk. bantuk containers caah Library support
- f. A tanglei programming models pakhat cio caah hmannak tahchunhnak (example application) pe tuah:
- a. Functional model
- b. Procedural model
- c. Object-oriented model
- d. Event-driven model
[B] A tanglei bia hna hi a Hmaan (**True) le a Hmaan lo (False) chim tuah:**
- a. Python cu hman le á¹henh a man a hau lo.
- b. Python program aa khat mi cu OS - microprocessor aa dang mi ah a run kho.
- c. Python program chung ah C++ asiloah Java libraries hman khawh a si.
- d. Python ah variable i a type cu kan hman ning cung ah aa hngat.
- e. Python cu GUI applications sernak ah hman khawh a si lo.
- f. Python nih functional, procedural, object-oriented le event-driven programming models a support.
- g. GUI applications cu event-driven programming model cung ah hrambunh mi an si.
- h. Functional programming model cu objects tampi i pehtlaihnak (interaction) a si.
[C] A tanglei pawl hi a kop in thleidan tuah:
- a. Functional programming → 1. GUI element cung ah hngat in pehtlaihnak
- b. Event-driven programming → 2. Objects i pehtlaihnak
- c. Procedural programming → 3. Statements
- d. OOP → 4. Maths bantuk functions
[D] A tanglei hmun lawng pawl hi phithlim tuah:
- a. Functional programming paradigm cu ________ programming model tiah zong hngalh a si.
- b. Procedural programming paradigm cu ________ programming model tiah zong hngalh a si.
- c. Python cu ________ nih a ser mi a si.
- d. Python programmers pawl cu a caan ah ________ tiah auh an si.