Skip to content

Chapter 1 Introduction To Python

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
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:
Factorial
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.

Comments