Tóm tắt lý thuyết môn Lập trình với Python | Học viện Công nghệ Bưu chính Viễn thông

Tóm tắt lý thuyết môn Lập trình với Python của Học viện Công nghệ Bưu chính Viễn thông với những kiến thức và thông tin bổ ích giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả cao cũng như có thể vận dụng tốt những kiến thức mình đã học vào thực tiễn cuộc sống. Mời bạn đọc đón xem!

Thông tin:
26 trang 10 tháng trước

Bình luận

Vui lòng đăng nhập hoặc đăng ký để gửi bình luận.

Tóm tắt lý thuyết môn Lập trình với Python | Học viện Công nghệ Bưu chính Viễn thông

Tóm tắt lý thuyết môn Lập trình với Python của Học viện Công nghệ Bưu chính Viễn thông với những kiến thức và thông tin bổ ích giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả cao cũng như có thể vận dụng tốt những kiến thức mình đã học vào thực tiễn cuộc sống. Mời bạn đọc đón xem!

172 86 lượt tải Tải xuống
lOMoARcPSD|36067889
(Tài liệu sưu tầm tham khảo, Lưu hành ni b)
Ngôn ng lp trình Python
Python là ngôn ng lập trình hướng ối tượng, bc cao, mnh m. Ngoài ra, hc Python
khá ơn giản d dàng. Python cũng một ngôn ng thông dch, tc ngôn ng
không cn phi biên dch ra file chy c code ến âu thì chy ến ó. Khi chy lnh
Python ta s có mt giao din dòng lnh ging ca Unix, th chy tng dòng code
ngay trc tiếp ti ây.
Guido Van Rossum người sáng lp ra ngôn ng này. Source code ca Python
ngun m, do t chc phi li nhun Python Software Foundation qun lý. Theo ánh giá
ca Eris S. Raymond, Python là ngôn ng hình thc rt sáng sa, cu trúc ràng,
thun tiện chon người mi hc lp trình.
Python là gì?
Python mt ngôn ng lp trình bc cao, thông dịch, hướng i tượng, a mc ích
cũng là một ngôn ng lp trình ng.
Cú pháp ca Python là khá d dàng hc và ngôn ng này cũng mạnh m và linh hot
không kém các ngôn ng khác trong vic phát trin các ng dng. Python h tr mu a
lp trình, bao gm lập trình hướng ối tượng, lp trình hàm và mnh lnh hoc các
phong cách lp trình theo th tc.
Python không ch làm việc trên lĩnh vực c biệt như lập trình web, ó ti sao ngôn
ng này là a mc ích bi vì nó có th ược s dng với web, enterprise, 3D CAD, …
Bn không cn s dng các kiu d liu khai báo biến bi vì kiu ca nó là ng, thế
bn có th viết a=15 khai báo mt giá tr nguyên trong mt biến.
Vi Python, vic phát trin ng dng và debug tr nên nhanh hơn bởi vì không cn ến
c biên dch và chu trình edit-test-debug ca Python là rt nhanh.
Các c im ca Python
D dàng s dng: Python là mt ngôn ng bc cao rt d dàng s dng. Python có
mt s ng t khóa ít hơn, cu trúc của Python ơn giản hơn pháp của Python
lOMoARcPSD|36067889
ược ịnh nghĩa khá ràng, … Tt c các iu này là Python thc s tr thành mt nn
ng thân thin vi lp trình viên.
Bn có th c code ca Python khá d ng. Phn code của Python ược ịnh nghĩa
khá rõ ràng và rành mch.
Python có mt thư viện chun khá rng ln. Thư viện này d dàng tương thích tích
hp vi UNIX, Windows, và Macintosh.
Python là mt ngôn ng thông dch. Trình thông dch thc thi code theo tng dòng (và
bn không cn phi biên dch ra file chy), iu này giúp cho quá trình debug tr nên d
dàng hơn và ây cũng là yếu t khá quan trng giúp Python thu hút ược nhiều người hc
và tr nên khá ph biến.
Python cũng một ngôn ng lp trình ng ối ng. Ngoài ra, Python còn h tr
các phương thức lp trình theo hàm và theo cu trúc.
Ngoài các c im trên, Python còn khá nhiu c iểm khác như h tr lp trình GUI,
ngun m, có th tích hp vi các ngôn ng lập trình khác, …
Lch s ca Python
Python ược phát trin bi Guido Van Rossum vào cui những năm 80 u những năm
90 ti Vin toán-tin Hà Lan. Python kế tha t nhiu ngôn ng như ABC, Module3, C,
C++, Unix Shell, …
Ngôn ng Python ược cp nht khá thường xuyên thêm các tính năng và hỗ tr mi.
Phiên bn mi nht hin nay ca Python là Python 3.3 ược công b vào 29/9/2012 vi
nguyên tc ch o "b cách làm việc nhằm hn chế trùng lp v mc chức năng
ca Python".
ng dn cài t Python
Trước khi cài t Python, bn cn ti Python t: https://www.python.org/downloads/.
Sau khi ã ti Python v máy, thì vic cài ặt Python cũng giống như cài ặt các phn mm
khác như bộ Visual Studio ca Microsoft, bn c nhn next, next và next.
Nếu bn ch ti cài cái này thì th biên dch các python file bằng terminal. Để s
dng y các tính năng tạo project, to file, biên dịch, bạn nên cài thêm IDE pycharm.
Bn theo link sau ti: https://www.jetbrains.com/pycharm/download/.
lOMoARcPSD|36067889
i ây là cách thiết lp path cho mt s h iu hành ph biến:
Thiết lp path trên Windows
Để thêm thư mục Python ti path cho mt phiên c th trong Windows thì ti dòng nhc
lnh, bn path %path%;C:\Python nhn Enter. Bạn cũng cn chú ý mt s biến
môi trường sau:
PYTHONPATH: Nó có vai trò như PATH. Biến này nói cho Trình thông dch ca Python
nơi ặt các file ược nhp vào một chương trình. cũng nên bao thư mục thư viện
nguồn và các thư mục cha source code ca Python.
PYTHONSTARTUP: gm path ca mt file khi to cha source code ca Python
ược thc thi mi khi bn bt u trình thông dch. Trong Unix, tên .pythoncr.py.
PYTHONCASEOK: ược s dng trong Windows ch dn cho Python tìm các kết ni
không phân bit kiu ch trong mt lnh quan trng.
PYTHONHOME: Nó là mt path tìm kiếm thay thế, và thường ược nhúng trong các thư
mc PYTHONSTARTUP hoc PYTHONPATH.
Thiết lp path trên Unix/Linux
Trong csh shell: gõ setenv PATH "$PATH:/usr/local/bin/python" và nhn Enter.
Trong bash shell: gõ export PATH="$PATH:/usr/local/bin/python" và nhn Enter.
Trong sh hoc ksh shell: bn gõ PATH="$PATH:/usr/local/bin/python" và nhn Enter.
Bn nên nh là /usr/local/bin/python là path của thư mục Python.
Chương trình Hello World trong Python
Chương này s trình bày cách viết chương trình Python ầu tiên in ra dòng ch "Hello
World" cũng như cách thực thi chương trình Python trong các chế khác nhau.
Chương trình Python ể in "Hello World"
i ây là oạn code ơn giản in ra dòng ch "Hello World" trong Python.
>>> a="Hello World"
>>> print a
lOMoARcPSD|36067889
Hello World >>>
Gii thích:
ây, chúng ta ang s dng IDE viết Python code. Phn gii thích chi tiết chy
chương trình sẽ ược trình bày ngay dưới ây.
Mt biến ược ịnh nghĩa với tên là a và gi "Hello World".
Lệnh print ược s dng in ra ni dung. Nếu bn ang s dng phiên bn Python mi nht (phiên
bn 3.3 chng hn) tlệnh print ã ược thay i thành hàm print(), tc trong phiên bn mi
nht bn cn phi thêm các du ngoặc ơn vào như dưới ây chng hn:
>>> a=("Hello World")
>>> print a
Hello World
>>>
Cách thc thi Python trong chế tương tác
$ python
Python 2.4.3 (#1, Nov 11 2015, 13:34:43)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
Sau ó, bn gõ dòng lnh sau và nhn Enter:
>>> print "Hello World"
Nếu bn ang chy trên phiên bn Python mi nht, bn cn s dng hàm print vi du
ngoặc ơn, như print ("Hello World");.
Cách thc thi Python trong chế script
S dng chế script, bn cn viết Python code trong mt file riêng r bi s dng bt
c trình son tho nào trong h iu hành ca bn. Sau ó, bn lưu nó với uôi .py và m
dòng nhc lnh thc thi.
Gi s bn gõ source code sau trong mt test.py file:
lOMoARcPSD|36067889
print "Hello World"
Nếu bn ã trình thông dch của Python ược thiết lp trong biến PATH, bây gi bn
th chạy chương trình trên như sau:
$ python test.py
Lnh trên s cho kết qu:
Hello World
Bây gi, chúng ta th mt cách khác thc thi mt Python script. Sau ây là test.py file
ã ược sa i:
print "Hello
World"
Gi s bn có trình thông dch ca Python có sẵn trong thư mục /usr/bin, thì bn có th
chạy chương trình trên như sau:
$ chmod +x test.py # Dong nay giup file co the thuc thi
$./test.py
Lnh trên s cho kết qu:
Hello World
Cú pháp Python cơ bản
Định danh (identifier) trong Python
Mt nh danh (identifier) trong Python là một tên ưc s dng nhn din mt biến, mt
hàm, mt lp, hoc mt ối tượng. Mt nh danh bt u vi mt ch cái t A ti Z hoc
t a ti z hoc mt du gạch dưới (_) ưc theo sau bi 0 hoc nhiu t, du gch
i hoc các ch s (t 0 ti 9).
Python không h tr các Punctuation char chng hạn như @, $ và % bên trong các nh
danh. Python là mt ngôn ng lp trình phân bit ch hoa- ch thường, do ó Vietjack
vietjack là hai nh danh khác nhau trong Python. i ây là mt s qui tắc nên ược
s dng trong khi t tên các nh danh:
lOMoARcPSD|36067889
Mt nh danh là mt dãy ký t hoc ch s.
Không t c biệt nào ược s dng (ngoi tr du gạch dưới) như một nh danh.
t u tiên th ch cái, du gạch dưới, nhưng không ưc s dng ch s làm
ký t u tiên.
T khóa không n ược s dụng như mt tên nh danh (phần dưới s trình bày v
khác t khóa này).
Tên lp bt u vi mt ch cái hoa. Tt c nh danh khác bt u vi mt ch cái thường.
Bt u mt nh danh vi mt du gạch dưới ơn chỉ rng nh danh ó là private.
Bt u mt nh danh vi hai du gạch dưới ch rng nh danh ó thc s là private.
Nếu ịnh danh cũng kết thúc vi hai du gạch dưới, thì nh danh này mt n c bit
ược ịnh nghĩa bởi ngôn ng (ví d như __init__ chẳng hn).
Các t khóa trong Python
Bảng dưi lit kê các t khóa trong Python. Đây là các tnh riêng và bn không th
s dụng chúng như là các hng, biến hoc cho bt k tên nh danh nào. Tt c t khóa
trong Python là ch dng ch thường.
and
exec
not
assert
finally
or
break
for
pass
class
from
print
continue
global
raise
def
if
return
del
import
try
elif
in
while
else
is
with
except
lambda
yield
Dòng lnh và tht dòng lnh trong Python
Python không cung cp các du ngoc ôm ({}) ch các khi code cho ịnh nghĩa lớp
hoc hàm hoc iu khin lung. Các khối code ược nhn biết bi tht dòng code
(indentation) trong Python và ây là iu bt buc.
lOMoARcPSD|36067889
S khong trng trong tht dòng là biến ổi, nhưng tất cc lnh bên trong khi phi
ược tht cùng mt s ng khong trống như nhau. Ví dụ:
if True:
print "True"
else: print
"False"
Tuy nhiên, khi sau s to ra mt li:
if True:
print "Answer"
print "True" else:
print "Answer"
print "False"
Do ó, trong Python thì tt c các dòng liên tiếp nhau mà ược tht u dòng vi cùng
ng khong trống như nhau s to nên mt khi. Trong ví d tiếp theo s có các khi
lnh a dng:
Ghi chú: Bn không cn c hiu vn này ngay lp tc, bn ch cn hiu các khi code
khác nhau ngay c khi chúng không có các du ngoc ôm. Đây chính là iểm khác nhau
gia Python và ngôn ng khác.
import
sys
try:
# open file stream
lOMoARcPSD|36067889
file = open(file_name, "w")
except IOError:
print "There was an error writing to", file_name
sys.exit() print "Enter ’", file_finish, print "’
When finished" while file_text != file_finish:
file_text = raw_input("Enter text: ")
if file_text == file_finish:
# close the file file.close
break file.write(file_text)
file.write("\n") file.close() file_name
= raw_input("Enter filename: ") if
len(file_name) == 0:
print "Next time please enter
something" sys.exit() try:
file = open(file_name, "r")
except IOError:
print "There was an error reading
file" sys.exit() file_text =
file.read() file.close() print file_text
Các lnh trên nhiu dòng trong Python
Các lnh trong Python có mt nét ặc trưng là kết thúc vi mt newline (dòng mi). Tuy
nhiên, Python cho phép s dng ký t \ ch rõ s liên tc dòng. Ví d:
total = item_one + \
lOMoARcPSD|36067889
item_two + \
item_three
Các lệnh ược cha bên trong các du ngoc [], {}, hoc () thì không cn s dng t
\. Ví d:
days = [’Monday’, ’Tuesday’, ’Wednesday’,
’Thursday’, ’Friday’]
Trích dn trong Python
Python chp nhn trích dn ơn ('), kép (") trích dn tam (''' hoc """) biu th các
hng chui, min là các trích dn này có cùng kiu m và óng.
Trích dẫn tam ược s dng tri rng chui ược trích dn qua nhiều dòng. Dưới ây
tt c các trích dn hp l:
word = ’word’ sentence = "This is a
sentence." paragraph = """This is a
paragraph. It is made up of multiple lines
and sentences."""
Comment trong Python
Python h tr hai kiểu comment ó comment ơn dòng a dòng. Trong Python, mt
du #, mà không bên trong mt hng chui nào, bt u một comment ơn dòng. Tt c
ký t sau du # kéo dài cho ến hết dòng ó thì ưc coi là mt comment ược b
qua bi trình thông dch. Ví d:
# First comment print "Hello, Python!"
# second comment
Chương trình trên sẽ cho kết qu:
Hello, Python!
Bạn cũng có thể gõ mt comment trên cùng ng vi mt lnh hoc biu thức như sau:
lOMoARcPSD|36067889
name = "Madisetti" # This is again comment
Bn có th comment trên nhiều dòng như sau:
# This is a comment.
# This is a comment, too.
# This is a comment, too.
# I said that already.
Python cũng hỗ tr kiu comment th hai, ó là kiểu comment a dòng ược cho bên trong
các trích dn tam, ví d:
#single line comment
print "Hello Python"
"""This is multiline
comment"""
S dng dòng trng trong Python
Mt dòng mà ch cha các khong trng trng whitespace, có th vi mt comment, thì
ược xem như là một dòng trng và Python hoàn toàn b qua nó.
Trong mt phiên thông dch trong chế tương tác, bn phi nhp mt dòng trng kết
thúc mt lnh a dòng.
c lnh a dòng trên một dòng ơn trong Python
Du chm phy (;) cho phép xut hin nhiu lnh trên một dòng ơn. Tt c các lnh ưc
cung cp này không bt u mt khi code mới. Dưới ây là ví d:
import sys; x = ’foo’; sys.stdout.write(x + \n’)
Các nhóm lệnh a dòng (còn ược gi là suite) trong Python
Mt nhóm các lệnh ơn, mà to mt khối code ơn, ưc gi suite trong Python. Các
lnh phc hợp như if, while, def, và class cn mt dòng header và mt suite.
Các dòng header bt u lnh (vi t khóa) và kết thúc vi mt du hai chấm (:) và ược
theo sau bi mt hoc nhiu dòng to nên mt suite. Ví d như:
lOMoARcPSD|36067889
if expression :
suite elif
expression :
suite
else :
suite
Tham s dòng lnh trong Python
Nhiều chương trình th ược chy cung cp cho bn mt s thông tin bản v
cách chúng nên ược chy. Python cho bn kh năng ể làm iu này vi -h:
$ python -h usage: python [option] ... [-c cmd | -m mod | file |
-] [arg] ...
Options and arguments (and corresponding environment variables):
-c cmd : program passed in as string (terminates option list)
-d : debug output from parser (also PYTHONDEBUG=x)
-E : ignore environment variables (such as PYTHONPATH)
-h : print this help message and exit
[ etc. ]
Bạn ng thể lp trình cho script ca mình theo cái cách mà nên chp nhn c
tùy chn khác nhau tùy theo cách bn thiết lập. Để tìm hiu thêm v tham s dòng lnh,
bn th tham khảo chương Tham s dòng lnh trong Python. (Mình ngh bn
nên tìm hiểu chương này sau khi bạn ã tìm hiu qua v các khái nim n li ca Python.)
Ngoài ra, mt iu cn nói ến ó là khi bn gp phải trường hợp chương trình hiển th dòng
nhc sau:
raw_input("\n\nPress the enter key to exit.")
Lnh này nói rng bn hãy nhn phím Enter thoát. ây, "\n\n" to hai newline
(dòng mới) trước khi hin th dòng thc sự. Khi người dùng nhấn phím enter, thì chương
trình kết thúc. Lnh này s i cho ến khi nào bn thc hin mt hành ng nào ó, và iu
này gi cho ca s console ca bn m ti khi bn tiếp tc thc hin hành ng.
lOMoARcPSD|36067889
Tham sng lnh trong Python
Python cung cp getopt Module giúp bn phân tích pháp các tùy chn tham s
dòng lnh.
$ python test.py arg1 arg2 arg3
sys Module trong Python cung cp s truy cp ti bt k tham s dòng lnh nào thông
qua sys.argv. Phc v hai mc ích:
sys.argv là danh sách các tham s dòng lnh.
len(sys.argv) là s tham s dòng lnh. Ví d
import sys print ’So tham so:’, len(sys.argv),
’tham so.’ print ’Danh sach tham so:’,
str(sys.argv)
Bây gi chạy script trên như sau:
$ python test.py arg1 arg2 arg3
Kết qu là:
So tham so: 4 tham so.
Danh sach tham so: [’test.py’, ’arg1’, ’arg2’, ’arg3’]
Ghi chú: tham s ầu tiên luôn luôn là tên script và nó cũng ược ếm trong s tham s.
Parse các tham s dòng lnh trong Python
Python cung cp getopt Module giúp bn phân tích pháp các tùy chn tham s
dòng lnh. Module này cung cp hai hàm và mt exception kích hot vic phân tích cú
pháp các tham s dòng lnh.
Phương thức getopt.getopt trong Python
Phương thc này phân tích pháp danh sách tham s và các tùy chn tham s dòng
lnh Cú pháp là:
getopt.getopt(args, option, [long_option])
Chi tiết v tham s:
lOMoARcPSD|36067889
args: Đây là danh sách tham số ược phân tích.
option: Đây chuỗi các tùy chn script mun nhn ra. Vi các tùy chn u
cu mt tham s thì nên ược theo sau bi mt du hai chm (:).
long_option: Đây là tham số tùy ý và nếu ược xác nh, phi là mt danh sách các chui
tên các tùy chọn dài, mà ược h tr. Vi các y chn dài yêu cu mt tham s thì nên
ược theo sau bi mt du bằng (=). Để ch chp nhn các tùy chn dài, các y chn
nên là mt chui trng.
Phương thức này tr v tr tr bao gm hai phn t: phn t u mt danh sách các
cp (option, value). Phn t th hai là danh sách các tham s chương trình.
Cp option-value ược tr v mt du gch ni ngn trước (ví d -x) tùy chn
ngn, có hai du gch ni là tùy chn dài (ví d --long-option).
getopt.GetoptError trong Python
Đây một exception ược to khi thy mt tùy chọn không ược nhn ra trong danh
sách tham s hoc khi mt tùy chn cn mt tham s mà không cung cp tham s nào.
Tham s cho exception là mt chui ch nguyên nhân gây ra li. Các thuc tính msg
opt cung cp thông ip li và tùy chn có liên quan.
Ví d
Gi s bn mun truyn hai tên file thông qua dòng lnh bạn cũng muốn cung cp
mt tùy chn kim tra s s dng ca script. Usage của script là như sau:
usage: test.py -i <inputfile> -o <outputfile>
Đây là script:
import sys, getopt def
main(argv):
inputfile = ’’
outputfile = ’’ try:
lOMoARcPSD|36067889
opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="])
except getopt.GetoptError:
print ’test.py -i <inputfile> -o <outputfile>’
sys.exit(2) for opt, arg in opts: if opt == -
h’: print ’test.py -i <inputfile> -o
<outputfile>’ sys.exit() elif opt in ("-
i", "--ifile"):
inputfile = arg elif
opt in ("-o", "--ofile"):
outputfile = arg print ’Input file
is "’, inputfile print ’Output file
is "’, outputfile
if __name__ ==
"__main__":
main(sys.argv[1:])
Bây gi chạy script trên như sau:
$ test.py -h
usage: test.py -i <inputfile> -o <outputfile>
$ test.py -i BMP -o
usage: test.py -i <inputfile> -o <outputfile>
$ test.py -i inputfile
Input file is " inputfile Output file is "
Các kiu biến trong Python
Biến là không gì khác ngoài các v tr b nh ược dành riêng lưu trữ d liu. Mt khi
mt biến ã ược lưu trữ, nghĩa là một khoảng không gian ã ược cp phát trong b nh
ó.
Da trên kiu d liu ca mt biến, trình thông dch cp phát b nh quyết nh nhng
có th ược lưu trữ trong khu nh dành riêng ó. Vì thế, bng vic gán các kiu d liu
lOMoARcPSD|36067889
khác nhau cho các biến, bn th lưu trữ s nguyên, thp phân hoc ký t trong các
biến này.
Gán các giá tr cho biến trong Python
Trong Python, chúng ta không cn khai báo biến một cách tường minh. Khi bn gán bt
c giá tr nào cho biến thì biến ó ược khai báo mt cách t ộng. Phép gán ưc thc hin
bi toán t =.
Toán hng trái ca toán t = tên biến toán hng phi giá tr ược lưu trữ trong
biến. Ví d:
a = 20 # Mot phØp gan so
nguyen b = 100.0 # Mot so thuc
ten = "Hoang" # Mot chuoi
print a
print b
print
ten
ây, 20, 100.0 và Hoang là các giá tr ược gán cho các biến a, b và ten. Các lnh trên
s cho kết qu sau:
20
100.0
Hoang
Phép a gán (multiple assignment) trong Python
Python cho phép bn gán mt giá tr ơn cho một s biến mt cách ng thi. Python h
tr hai kiu a gán sau:
Gán giá tr ơn cho nhiều biến, ví d:
a = b = c = 1
Hoc gán nhiu giá tr cho nhiu biến, ví d:
lOMoARcPSD|36067889
a,b,c=5,10,15
print a print
b print c
Trong trường hp này, các giá tr s ược gán theo th t các biến xut hin. ác
kiu d liu chun trong Python
D liệu mà ược lưu trữ trong b nh có th nhiu kiu khác nhau. d, lương của
công nhân ươc lưu trữ i dng mt giá tr s n a ch ca h ược lưu trữ i dng
các ký t ch-s. Python nhiu kiu d liu chuẩn ược s dng xác nh các hành
ng có th xảy ra trên chúng và phương thức lưu trữ cho mi kiu.
Python có 5 kiu d liu chun là:
Kiu Number
Kiu String
Kiu List
Kiu Tuple
Kiu Dictionary
Ngoài kiu Number và kiu String mà có th bạn ã ược làm quen vi các ngôn ng lp
trình khác thì trong Python còn xut hin thêm ba kiu d liu ó List, Tuple và
Dictionary. Chúng ta s tìm hiu chi tiết tng kiu d liu trong mt chương riêng (Bạn
theo link m hiu chúng). Tiếp theo chúng ta tìm hiu mt s hàm ã ược xây dng sn
trong Python thc hin phép chuyn i gia các kiu d liu.
Chuyn i kiu trong Python
Đôi khi bạn cn thc hin mt s phép chuyn i kiu tha mãn hàm hoặc phương
thức nào ó, … Để thc hin iu này, ơn giản là bn s dng tên kiểu như mt hàm.
i ây là mt s hàm ã ược xây dng sn chuyn i t mt kiu này sang mt kiu
khác. Các hàm này tr v mt ối tượng mi biu din giá tr ã ược chuyn i.
Hàm
Miêu t
int(x [,base])
Chuyn i x thành mt s nguyên. Tham s base xác ịnh
s nếu x là mt chui
lOMoARcPSD|36067889
long(x [,base] )
Chuyn i x thành mt long int. Tham s base xác ịnh sở
nếu x là mt chui
float(x)
Chuyn i x thành mt s thc
complex(real [,imag])
Chuyn i x thành mt s phc
str(x)
Chuyn i x thành mt chui
repr(x)
Chuyn i ối tượng x thành mt chui biu thc
eval(str)
Ước lượng mt chui và tr v mt ối tượng
tuple(s)
Chuyn i s thành mt Tuple
list(s)
Chuyn i s thành mt List
set(s)
Chuyn i s thành mt Set
dict(d)
To mt Dictionary. Tham s d phi là mt dãy các Tuple ca
cp (key, value)
frozenset(s)
Chuyn i s thành mt Fronzen Set
chr(x)
Chuyn i mt s nguyên thành mt ký t
unichr(x)
Chuyn i mt s nguyên thành mt ký t Unicode
ord(x)
Chuyn i mt ký t ơn thành giá trị nguyên ca nó
hex(x)
Chuyn i mt s nguyên thành mt chui thp lc phân
oct(x)
Chuyn i mt s nguyên thành mt chui bát phân
lOMoARcPSD|36067889
Toán t trong Python
Toán t các biểu tượng c th thc hin mt s hot ng trên mt s gtr
cho ra mt kết qu. Ví d biu thức 2 + 3 = 5, thì 2 và 3 ưc gi là các toán hng và du
+ ược gi là toán t. Các loi toán t trong Python
Python h tr các loi toán t sau:
Toán t s hc
Toán t quan h (còn gi là toán t so sánh)
Toán t gán
Toán t logic
Toán t membership
Toán t identify
Toán t thao tác bit
Toán t s hc trong Python
Miêu t
Thc hin phép chia, trong ó kết qu là thương số sau khi ã xóa các ch s sau
du phy
Phép cng
Phép tr
Phép nhân
Phép chia
Phép chia ly phần dư
Phép ly s mũ (ví dụ 2**3 cho kết qu là 8)
i ây là ví d minh ha các toán t s hc trong Python.
>>> 10+20
30
lOMoARcPSD|36067889
>>> 20-10
10
>>> 10*2
20
>>> 10/2
5
>>> 10%3
1
>>> 2**3
8
>>> 10//3
3
>>>
Toán t quan h trong Python
Python h tr các toán t quan h (toán t so sánh) sau:
Toán t
Miêu t
<
Nh hơn. Nếu giá tr ca toán hng trái là nh hơn giá trị ca toán hng phi, thì iu kin
tr thành true
>
Lớn hơn
<=
Nh hơn hoc bng
<=
Lớn hơn hoặc bng
==
Bng
!=
Không bng
<>
Không bằng (tương tự !=)
i ây là ví d minh ha cho các toán t quan h trong Python:
>>> 10<20 True
>>> 10>20
lOMoARcPSD|36067889
False
>>> 10<=10
True
>>> 20>=15
True
>>> 5==6
False
>>> 5!=6
True
>>> 10<>2
True
>>>
Toán t gán trong Python
Python h tr các loi toán t gán sau:
Toán t
Miêu t
=
Phép gán
/=
Chia toán hng trái cho toán hng phi, và gán kết qu cho toán hng trái
+=
Cng và gán
-=
Trgán
*=
Nhân và gán
%=
Chia ly phần dư và gán
**=
Ly s mũ và gán
//=
Thc hin phép chia // và gán
Dưới ây là ví d minh ha cho các toán t gán trong Python:
>>> c=10
>>> c
lOMoARcPSD|36067889
10
>>> c+=5
>>> c
15
>>> c-=5
>>> c
10
>>> c*=2
>>> c
20
>>> c/=2
>>> c
10
>>> c%=3
>>> c
1
>>> c=5
>>> c**=2
>>> c
25
>>> c//=2
>>> c
12
>>>
Toán t logic trong Python
Python h tr các toán t logic sau:
Toán t
Miêu t
and
Phép Và. Nếu c hai iu kin là true thì kết qu strue
or
Phép Hoc. Nếu mt trong hai iu kin là true thì kết qu là true
lOMoARcPSD|36067889
not
Phép ph ịnh. Được s dng ảo ngưc trng thái logic ca toán hng
i ây là ví d minh ha cho các toán t logic trong Python:
a=5>4 and 3>2
print a
b=5>4 or 3<2
print b
c=not(5>4) print
c
Kết qu là:
>>>
True
True
False
>>>
Toán t thao tác bit trong Python
Toán t thao tác bit làm vic trên các bit thc hin các hot ng theo tng bit. Gi s
a = 60 và b = 13 thì nh dng nh phân ca chúng lần lượt là a = 0011 1100 và b = 0000
1101.
Python h tr các toán t thao tác bit sau:
Toán t
Miêu t
Ví d
&
Sao chép mt bit ti kết qu nếu bit này tn ti trong
c hai toán hng
(a & b) cho kết qu 0000 1100
|
Sao chép mt bit ti kết qu nếu bit này tn ti trong
bt k toán hng nào
(a | b) = 61 (tc là 0011 1101)
^
Sao chép bit nếu nó ược set (ch bit 1) ch trong mt
toán hng
(a ^ b) = 49 (tc là 0011 0001)
lOMoARcPSD|36067889
~
Đây là toán tử một ngôi, ưc s dng o ngược bit
(~a ) = -61 (tc là 1100 0011)
<<
Toán t dch trái nh phân. Giá tr ca toán hng trái
ược dch chuyn sang trái mt s ợng bit ã ược
xác nh bi toán hng phi
a << = 240 (tc là 1111 0000)
>>
Toán t dch phi nh phân. Giá tr ca toán hng trái
ược dch chuyn sang phi mt s ợng bit ã ược
xác nh bi toán hng phi
a >> = 15 (tc là 0000 1111)
i ây là ví d minh ha cho các toán t thao tác bit trong Python:
a = 60 # 60 = 0011 1100 b
= 13 # 13 = 0000 1101 c =
0 c = a & b; # 12 = 0000 1100
print "Dong 1 - Gia tri cua c la ", c
c = a | b; # 61 = 0011 1101
print "Dong 2 - Gia tri cua c la ", c
c = a ^ b; # 49 = 0011 0001
print "Dong 3 - Gia tri cua c la ", c
c = ~a; # -61 = 1100 0011
print "Dong 4 - Gia tri cua c la ", c
c = a << 2; # 240 = 1111 0000
print "Dong 5 - Gia tri cua c la ", c
c = a >> 2; # 15 = 0000 1111
print "Dong 6 - Gia tri cua c la ", c
Toán t membership trong Python
Toán t membership trong Python kim tra xem biến này nm trong dãy (có mt
trong các thành viên ca dãy) hay không. Có hai toán t membership trong Python là:
Toán t
Miêu t
in
Tr v true nếu mt biến là nm trong dãy các biến, nếu không là false
not in
Tr v true nếu mt biến là không nm trong dãy các biến, nếu không là false
lOMoARcPSD|36067889
i ây là ví d minh ha cho các toán t membership trong Python:
a=10 b=20
list=[10,20,30,40,50];
if (a in list):
print "a la trong list da cho" else:
print "a la khong trong list da cho" if(b
not in list):
print "b la khong trong list da cho" else:
print "b la trong list da cho"
Kết qu là:
>>> a la trong list da cho b la trong list da cho
>>>
Toán t identify trong Python
Toán t identify so sánh các v trí ô nh ca hai ối tượng. Python có hai toán t identify
là:
i ây là ví d minh ha cho các toán t identify trong Python:
a=20 b=20
if( a is b):
print
Toán t
Miêu t
is
Tr v true nếu các biến hai bên toán t cùng tr ti mt ối tượng, nếu không là false
is not
Tr v false nếu các biến hai bên toán t cùng tr ti mt ối tượng, nếu không là true
lOMoARcPSD|36067889
?a,b co cung
identity?
else:
print ?a, b la khac nhau?
b=10 if( a is not b): print ?a,b co
identity khac nhau? else: print ?a,b
co cung identity?
Kết qu là:
>>> a,b co cung identity a,b co identity khac nhau
>>>
Th t ưu tiên ca các toán t trong Python
Bn cn chú ý th t ưu tiên của các toán t mang li kết qu như mong muốn trong
quá trình làm vic. Bng i ây lit tt c các toán t trong Python vi th t ưu
tiên t cao xung thp.
Toán t
Miêu t
**
Toán t
~ + -
Phn bù; phép cng và tr mt ngôi (với tên phương thức ln
t là +@ và -@)
* / % //
Phép nhân, chia, ly phần dư và phép chia //
+ -
Phép cng và phép tr
>> <<
Dch bit phi và dch bit trái
&
Phép Và Bit
^ |
Phép XOR và OR
<= < > >=
Các toán t so sánh
<> == !=
Các toán t so sánh bng
= %= /= //= -= += *= **=
Các toán t gán
is is not
Các toán t Identity
lOMoARcPSD|36067889
in not in
Các toán t Membership
not or and
Các toán t logic
| 1/26

Preview text:

lOMoARcPSD| 36067889
(Tài liệu sưu tầm tham khảo, Lưu hành nội bộ)
Ngôn ngữ lập trình Python
Python là ngôn ngữ lập trình hướng ối tượng, bậc cao, mạnh mẽ. Ngoài ra, học Python
là khá ơn giản và dễ dàng. Python cũng là một ngôn ngữ thông dịch, tức là ngôn ngữ
không cần phải biên dịch ra file chạy mà ọc code ến âu thì chạy ến ó. Khi chạy lệnh
Python ta sẽ có một giao diện dòng lệnh giống của Unix, có thể chạy từng dòng code ngay trực tiếp tại ây.
Guido Van Rossum là người sáng lập ra ngôn ngữ này. Source code của Python mã
nguồn mở, do tổ chức phi lợi nhuận Python Software Foundation quản lý. Theo ánh giá
của Eris S. Raymond, Python là ngôn ngữ có hình thức rất sáng sủa, cấu trúc rõ ràng,
thuận tiện chon người mới học lập trình. Python là gì?
Python là một ngôn ngữ lập trình bậc cao, thông dịch, hướng ối tượng, a mục ích và
cũng là một ngôn ngữ lập trình ộng.
Cú pháp của Python là khá dễ dàng ể học và ngôn ngữ này cũng mạnh mẽ và linh hoạt
không kém các ngôn ngữ khác trong việc phát triển các ứng dụng. Python hỗ trợ mẫu a
lập trình, bao gồm lập trình hướng ối tượng, lập trình hàm và mệnh lệnh hoặc là các
phong cách lập trình theo thủ tục.
Python không chỉ làm việc trên lĩnh vực ặc biệt như lập trình web, và ó là tại sao ngôn
ngữ này là a mục ích bởi vì nó có thể ược sử dụng với web, enterprise, 3D CAD, …
Bạn không cần sử dụng các kiểu dữ liệu ể khai báo biến bởi vì kiểu của nó là ộng, vì thế
bạn có thể viết a=15 ể khai báo một giá trị nguyên trong một biến.
Với Python, việc phát triển ứng dụng và debug trở nên nhanh hơn bởi vì không cần ến
bước biên dịch và chu trình edit-test-debug của Python là rất nhanh. Các ặc iểm của Python •
Dễ dàng ể sử dụng: Python là một ngôn ngữ bậc cao rất dễ dàng ể sử dụng. Python có
một số lượng từ khóa ít hơn, cấu trúc của Python ơn giản hơn và cú pháp của Python lOMoARcPSD| 36067889
ược ịnh nghĩa khá rõ ràng, … Tất cả các iều này là Python thực sự trở thành một ngôn
ngữ thân thiện với lập trình viên. •
Bạn có thể ọc code của Python khá dễ dàng. Phần code của Python ược ịnh nghĩa
khá rõ ràng và rành mạch. •
Python có một thư viện chuẩn khá rộng lớn. Thư viện này dễ dàng tương thích và tích
hợp với UNIX, Windows, và Macintosh. •
Python là một ngôn ngữ thông dịch. Trình thông dịch thực thi code theo từng dòng (và
bạn không cần phải biên dịch ra file chạy), iều này giúp cho quá trình debug trở nên dễ
dàng hơn và ây cũng là yếu tố khá quan trọng giúp Python thu hút ược nhiều người học
và trở nên khá phổ biến. •
Python cũng là một ngôn ngữ lập trình hướng ối tượng. Ngoài ra, Python còn hỗ trợ
các phương thức lập trình theo hàm và theo cấu trúc.
Ngoài các ặc iểm trên, Python còn khá nhiều ặc iểm khác như hỗ trợ lập trình GUI, mã
nguồn mở, có thể tích hợp với các ngôn ngữ lập trình khác, … Lịch sử của Python
Python ược phát triển bởi Guido Van Rossum vào cuối những năm 80 và ầu những năm
90 tại Viện toán-tin ở Hà Lan. Python kế thừa từ nhiều ngôn ngữ như ABC, Module3, C, C++, Unix Shell, …
Ngôn ngữ Python ược cập nhật khá thường xuyên ể thêm các tính năng và hỗ trợ mới.
Phiên bản mới nhất hiện nay của Python là Python 3.3 ược công bố vào 29/9/2012 với
nguyên tắc chủ ạo là "bỏ cách làm việc cũ nhằm hạn chế trùng lặp về mặc chức năng của Python".
Hướng dẫn cài ặt Python
Trước khi cài ặt Python, bạn cần tải Python từ: https://www.python.org/downloads/.
Sau khi ã tải Python về máy, thì việc cài ặt Python cũng giống như cài ặt các phần mềm
khác như bộ Visual Studio của Microsoft, bạn cứ nhấn next, next và next.
Nếu bạn chỉ tải và cài cái này thì có thể biên dịch các python file bằng terminal. Để sử
dụng ầy ủ các tính năng tạo project, tạo file, biên dịch, … bạn nên cài thêm IDE pycharm.
Bạn theo link sau ể tải: https://www.jetbrains.com/pycharm/download/. lOMoARcPSD| 36067889
Dưới ây là cách thiết lập path cho một số hệ iều hành phổ biến:
Thiết lập path trên Windows
Để thêm thư mục Python tới path cho một phiên cụ thể trong Windows thì tại dòng nhắc
lệnh, bạn gõ path %path%;C:\Python và nhấn Enter. Bạn cũng cần chú ý một số biến môi trường sau:
PYTHONPATH: Nó có vai trò như PATH. Biến này nói cho Trình thông dịch của Python
nơi ể ặt các file ược nhập vào một chương trình. Nó cũng nên bao thư mục thư viện
nguồn và các thư mục chứa source code của Python.
PYTHONSTARTUP: Nó gồm path của một file khởi tạo chứa source code của Python
và ược thực thi mỗi khi bạn bắt ầu trình thông dịch. Trong Unix, nó có tên là .pythoncr.py.
PYTHONCASEOK: ược sử dụng trong Windows ể chỉ dẫn cho Python ể tìm các kết nối
không phân biệt kiểu chữ trong một lệnh quan trọng.
PYTHONHOME: Nó là một path tìm kiếm thay thế, và thường ược nhúng trong các thư
mục PYTHONSTARTUP hoặc PYTHONPATH.
Thiết lập path trên Unix/Linux
Trong csh shell: gõ setenv PATH "$PATH:/usr/local/bin/python" và nhấn Enter.
Trong bash shell: gõ export PATH="$PATH:/usr/local/bin/python" và nhấn Enter.
Trong sh hoặc ksh shell: bạn gõ PATH="$PATH:/usr/local/bin/python" và nhấn Enter.
Bạn nên nhớ là /usr/local/bin/python là path của thư mục Python.
Chương trình Hello World trong Python
Chương này sẽ trình bày cách viết chương trình Python ầu tiên ể in ra dòng chữ "Hello
World" cũng như cách thực thi chương trình Python trong các chế ộ khác nhau.
Chương trình Python ể in "Hello World"
Dưới ây là oạn code ơn giản ể in ra dòng chữ "Hello World" trong Python. >>> a="Hello World" >>> print a lOMoARcPSD| 36067889 Hello World >>> Giải thích: •
Ở ây, chúng ta ang sử dụng IDE ể viết Python code. Phần giải thích chi tiết ể chạy
chương trình sẽ ược trình bày ngay dưới ây. •
Một biến ược ịnh nghĩa với tên là a và giữ "Hello World".
Lệnh print ược sử dụng in ra nội dung. Nếu bạn ang sử dụng phiên bản Python mới nhất (phiên
bản 3.3 chẳng hạn) thì lệnh print ã ược thay ổi thành hàm print(), tức là trong phiên bản mới
nhất bạn cần phải thêm các dấu ngoặc ơn vào như dưới ây chẳng hạn:
>>> a=("Hello World") >>> print a Hello World >>>
Cách thực thi Python trong chế ộ tương tác $ python
Python 2.4.3 (#1, Nov 11 2015, 13:34:43)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2
Type "help", "copyright", "credits" or "license" for more information. >>>
Sau ó, bạn gõ dòng lệnh sau và nhấn Enter:
>>> print "Hello World"
Nếu bạn ang chạy trên phiên bản Python mới nhất, bạn cần sử dụng hàm print với dấu
ngoặc ơn, như print ("Hello World");.
Cách thực thi Python trong chế ộ script
Sử dụng chế ộ script, bạn cần viết Python code trong một file riêng rẽ bởi sử dụng bất
cứ trình soạn thảo nào trong hệ iều hành của bạn. Sau ó, bạn lưu nó với uôi .py và mở
dòng nhắc lệnh ể thực thi.
Giả sử bạn gõ source code sau trong một test.py file: lOMoARcPSD| 36067889 print "Hello World"
Nếu bạn ã có trình thông dịch của Python ược thiết lập trong biến PATH, bây giờ bạn
thử chạy chương trình trên như sau: $ python test.py
Lệnh trên sẽ cho kết quả: Hello World
Bây giờ, chúng ta thử một cách khác ể thực thi một Python script. Sau ây là test.py file ã ược sửa ổi: print "Hello World"
Giả sử bạn có trình thông dịch của Python có sẵn trong thư mục /usr/bin, thì bạn có thể
chạy chương trình trên như sau:
$ chmod +x test.py # Dong nay giup file co the thuc thi $./test.py
Lệnh trên sẽ cho kết quả: Hello World Cú pháp Python cơ bản
Định danh (identifier) trong Python
Một ịnh danh (identifier) trong Python là một tên ược sử dụng ể nhận diện một biến, một
hàm, một lớp, hoặc một ối tượng. Một ịnh danh bắt ầu với một chữ cái từ A tới Z hoặc
từ a tới z hoặc một dấu gạch dưới (_) ược theo sau bởi 0 hoặc nhiều ký tự, dấu gạch
dưới hoặc các chữ số (từ 0 tới 9).
Python không hỗ trợ các Punctuation char chẳng hạn như @, $ và % bên trong các ịnh
danh. Python là một ngôn ngữ lập trình phân biệt chữ hoa- chữ thường, do ó Vietjack
vietjack là hai ịnh danh khác nhau trong Python. Dưới ây là một số qui tắc nên ược
sử dụng trong khi ặt tên các ịnh danh: lOMoARcPSD| 36067889 •
Một ịnh danh là một dãy ký tự hoặc chữ số. •
Không có ký tự ặc biệt nào ược sử dụng (ngoại trừ dấu gạch dưới) như một ịnh danh.
Ký tự ầu tiên có thể là chữ cái, dấu gạch dưới, nhưng không ược sử dụng chữ số làm ký tự ầu tiên. •
Từ khóa không nên ược sử dụng như là một tên ịnh danh (phần dưới sẽ trình bày về khác từ khóa này). •
Tên lớp bắt ầu với một chữ cái hoa. Tất cả ịnh danh khác bắt ầu với một chữ cái thường. •
Bắt ầu một ịnh danh với một dấu gạch dưới ơn chỉ rằng ịnh danh ó là private. •
Bắt ầu một ịnh danh với hai dấu gạch dưới chỉ rằng ịnh danh ó thực sự là private. •
Nếu ịnh danh cũng kết thúc với hai dấu gạch dưới, thì ịnh danh này là một tên ặc biệt
ược ịnh nghĩa bởi ngôn ngữ (ví dụ như __init__ chẳng hạn). Các từ khóa trong Python
Bảng dưới liệt kê các từ khóa trong Python. Đây là các từ dành riêng và bạn không thể
sử dụng chúng như là các hằng, biến hoặc cho bất kỳ tên ịnh danh nào. Tất cả từ khóa
trong Python là chỉ ở dạng chữ thường. and exec not assert finally or break for pass class from print continue global raise def if return del import try elif in while else is with except lambda yield
Dòng lệnh và ộ thụt dòng lệnh trong Python
Python không cung cấp các dấu ngoặc ôm ({}) ể chỉ các khối code cho ịnh nghĩa lớp
hoặc hàm hoặc iều khiển luồng. Các khối code ược nhận biết bởi ộ thụt dòng code
(indentation) trong Python và ây là iều bắt buộc. lOMoARcPSD| 36067889
Số khoảng trống trong ộ thụt dòng là biến ổi, nhưng tất cả các lệnh bên trong khối phải
ược thụt cùng một số lượng khoảng trống như nhau. Ví dụ: if True: print "True" else: print "False"
Tuy nhiên, khối sau sẽ tạo ra một lỗi: if True: print "Answer" print "True" else: print "Answer" print "False"
Do ó, trong Python thì tất cả các dòng liên tiếp nhau mà ược thụt ầu dòng với cùng
lượng khoảng trống như nhau sẽ tạo nên một khối. Trong ví dụ tiếp theo sẽ có các khối lệnh a dạng:
Ghi chú: Bạn không cần cố hiểu vấn ề này ngay lập tức, bạn chỉ cần hiểu các khối code
khác nhau ngay cả khi chúng không có các dấu ngoặc ôm. Đây chính là iểm khác nhau
giữa Python và ngôn ngữ khác. import sys try: # open file stream lOMoARcPSD| 36067889 file = open(file_name, "w") except IOError:
print "There was an error writing to", file_name
sys.exit() print "Enter ’", file_finish, print "’
When finished" while file_text != file_finish:
file_text = raw_input("Enter text: ") if file_text == file_finish: # close the file file.close break file.write(file_text)
file.write("\n") file.close() file_name
= raw_input("Enter filename: ") if len(file_name) == 0:
print "Next time please enter something" sys.exit() try: file = open(file_name, "r") except IOError:
print "There was an error reading file" sys.exit() file_text =
file.read() file.close() print file_text
Các lệnh trên nhiều dòng trong Python
Các lệnh trong Python có một nét ặc trưng là kết thúc với một newline (dòng mới). Tuy
nhiên, Python cho phép sử dụng ký tự \ ể chỉ rõ sự liên tục dòng. Ví dụ: total = item_one + \ lOMoARcPSD| 36067889 item_two + \ item_three
Các lệnh ược chứa bên trong các dấu ngoặc [], {}, hoặc () thì không cần sử dụng ký tự \. Ví dụ:
days = [’Monday’, ’Tuesday’, ’Wednesday’,
’Thursday’, ’Friday’] Trích dẫn trong Python
Python chấp nhận trích dẫn ơn ('), kép (") và trích dẫn tam (''' hoặc """) ể biểu thị các
hằng chuỗi, miễn là các trích dẫn này có cùng kiểu mở và óng.
Trích dẫn tam ược sử dụng ể trải rộng chuỗi ược trích dẫn qua nhiều dòng. Dưới ây là
tất cả các trích dẫn hợp lệ:
word = ’word’ sentence = "This is a
sentence." paragraph = """This is a
paragraph. It is made up of multiple lines and sentences.""" Comment trong Python
Python hỗ trợ hai kiểu comment ó là comment ơn dòng và a dòng. Trong Python, một
dấu #, mà không ở bên trong một hằng chuỗi nào, bắt ầu một comment ơn dòng. Tất cả
ký tự ở sau dấu # và kéo dài cho ến hết dòng ó thì ược coi là một comment và ược bỏ
qua bởi trình thông dịch. Ví dụ:
# First comment print "Hello, Python!" # second comment
Chương trình trên sẽ cho kết quả: Hello, Python!
Bạn cũng có thể gõ một comment trên cùng dòng với một lệnh hoặc biểu thức như sau: lOMoARcPSD| 36067889
name = "Madisetti" # This is again comment
Bạn có thể comment trên nhiều dòng như sau: # This is a comment. # This is a comment, too. # This is a comment, too. # I said that already.
Python cũng hỗ trợ kiểu comment thứ hai, ó là kiểu comment a dòng ược cho bên trong
các trích dẫn tam, ví dụ: #single line comment print "Hello Python" """This is multiline comment"""
Sử dụng dòng trống trong Python
Một dòng mà chỉ chứa các khoảng trống trắng whitespace, có thể với một comment, thì
ược xem như là một dòng trống và Python hoàn toàn bỏ qua nó.
Trong một phiên thông dịch trong chế ộ tương tác, bạn phải nhập một dòng trống ể kết thúc một lệnh a dòng.
Các lệnh a dòng trên một dòng ơn trong Python
Dấu chấm phảy (;) cho phép xuất hiện nhiều lệnh trên một dòng ơn. Tất cả các lệnh ược
cung cấp này không bắt ầu một khối code mới. Dưới ây là ví dụ:
import sys; x = ’foo’; sys.stdout.write(x + ’\n’)
Các nhóm lệnh a dòng (còn ược gọi là suite) trong Python
Một nhóm các lệnh ơn, mà tạo một khối code ơn, ược gọi là suite trong Python. Các
lệnh phức hợp như if, while, def, và class cần một dòng header và một suite.
Các dòng header bắt ầu lệnh (với từ khóa) và kết thúc với một dầu hai chấm (:) và ược
theo sau bởi một hoặc nhiều dòng ể tạo nên một suite. Ví dụ như: lOMoARcPSD| 36067889 if expression : suite elif expression : suite else : suite
Tham số dòng lệnh trong Python
Nhiều chương trình có thể ược chạy ể cung cấp cho bạn một số thông tin cơ bản về
cách chúng nên ược chạy. Python cho bạn khả năng ể làm iều này với -h:
$ python -h usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
Options and arguments (and corresponding environment variables): -c
cmd : program passed in as string (terminates option list) -d
: debug output from parser (also PYTHONDEBUG=x)
-E : ignore environment variables (such as PYTHONPATH)
-h : print this help message and exit [ etc. ]
Bạn cũng có thể lập trình cho script của mình theo cái cách mà nó nên chấp nhận các
tùy chọn khác nhau tùy theo cách bạn thiết lập. Để tìm hiểu thêm về tham số dòng lệnh,
bạn có thể tham khảo chương Tham số dòng lệnh trong Python. (Mình ề nghị bạn
nên tìm hiểu chương này sau khi bạn ã tìm hiểu qua về các khái niệm còn lại của Python.)
Ngoài ra, một iều cần nói ến ó là khi bạn gặp phải trường hợp chương trình hiển thị dòng nhắc sau:
raw_input("\n\nPress the enter key to exit.")
Lệnh này nói rằng bạn hãy nhấn phím Enter ể thoát. Ở ây, "\n\n" là ể tạo hai newline
(dòng mới) trước khi hiển thị dòng thực sự. Khi người dùng nhấn phím enter, thì chương
trình kết thúc. Lệnh này sẽ ợi cho ến khi nào bạn thực hiện một hành ộng nào ó, và iều
này giữ cho cửa sổ console của bạn mở tới khi bạn tiếp tục thực hiện hành ộng. lOMoARcPSD| 36067889
Tham số dòng lệnh trong Python
Python cung cấp getopt Module giúp bạn phân tích cú pháp các tùy chọn và tham số dòng lệnh.
$ python test.py arg1 arg2 arg3
sys Module trong Python cung cấp sự truy cập tới bất kỳ tham số dòng lệnh nào thông
qua sys.argv. Phục vụ hai mục ích: •
sys.argv là danh sách các tham số dòng lệnh. •
len(sys.argv) là số tham số dòng lệnh. Ví dụ
import sys print ’So tham so:’, len(sys.argv),
’tham so.’ print ’Danh sach tham so:’, str(sys.argv)
Bây giờ chạy script trên như sau:
$ python test.py arg1 arg2 arg3 Kết quả là: So tham so: 4 tham so.
Danh sach tham so: [’test.py’, ’arg1’, ’arg2’, ’arg3’]
Ghi chú: tham số ầu tiên luôn luôn là tên script và nó cũng ược ếm trong số tham số.
Parse các tham số dòng lệnh trong Python
Python cung cấp getopt Module giúp bạn phân tích cú pháp các tùy chọn và tham số
dòng lệnh. Module này cung cấp hai hàm và một exception ể kích hoạt việc phân tích cú
pháp các tham số dòng lệnh.
Phương thức getopt.getopt trong Python
Phương thức này phân tích cú pháp danh sách tham số và các tùy chọn tham số dòng lệnh Cú pháp là:
getopt.getopt(args, option, [long_option]) Chi tiết về tham số: lOMoARcPSD| 36067889 •
args: Đây là danh sách tham số ể ược phân tích. •
option: Đây là chuỗi các tùy chọn mà script muốn ể nhận ra. Với các tùy chọn mà yêu
cầu một tham số thì nên ược theo sau bởi một dấu hai chấm (:). •
long_option: Đây là tham số tùy ý và nếu ược xác ịnh, phải là một danh sách các chuỗi
là tên các tùy chọn dài, mà ược hỗ trợ. Với các tùy chọn dài yêu cầu một tham số thì nên
ược theo sau bởi một dấu bằng (=). Để chỉ chấp nhận các tùy chọn dài, các tùy chọn
nên là một chuỗi trống. •
Phương thức này trả về trả trị bao gồm hai phần tử: phần tử ầu là một danh sách các
cặp (option, value). Phần tử thứ hai là danh sách các tham số chương trình. •
Cặp option-value ược trả về có một dấu gạch nối ngắn ở trước (ví dụ -x) là tùy chọn
ngắn, có hai dấu gạch nối là tùy chọn dài (ví dụ --long-option).
getopt.GetoptError trong Python
Đây là một exception và nó ược tạo khi thấy một tùy chọn không ược nhận ra trong danh
sách tham số hoặc khi một tùy chọn cần một tham số mà không cung cấp tham số nào.
Tham số cho exception là một chuỗi chỉ nguyên nhân gây ra lỗi. Các thuộc tính msg
opt cung cấp thông iệp lỗi và tùy chọn có liên quan. Ví dụ
Giả sử bạn muốn truyền hai tên file thông qua dòng lệnh và bạn cũng muốn cung cấp
một tùy chọn ể kiểm tra sự sử dụng của script. Usage của script là như sau: usage: test.py -i -o Đây là script: import sys, getopt def main(argv): inputfile = ’’ outputfile = ’’ try: lOMoARcPSD| 36067889
opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="]) except getopt.GetoptError: print ’test.py -i -o ’
sys.exit(2) for opt, arg in opts: if opt == ’- h’: print ’test.py -i -o ’ sys.exit() elif opt in ("- i", "--ifile"): inputfile = arg elif opt in ("-o", "--ofile"):
outputfile = arg print ’Input file
is "’, inputfile print ’Output file is "’, outputfile if __name__ == "__main__": main(sys.argv[1:])
Bây giờ chạy script trên như sau: $ test.py -h usage: test.py -i -o $ test.py -i BMP -o usage: test.py -i -o $ test.py -i inputfile
Input file is " inputfile Output file is "
Các kiểu biến trong Python
Biến là không gì khác ngoài các vị trị bộ nhớ ược dành riêng ể lưu trữ dữ liệu. Một khi
một biến ã ược lưu trữ, nghĩa là một khoảng không gian ã ược cấp phát trong bộ nhớ ó.
Dựa trên kiểu dữ liệu của một biến, trình thông dịch cấp phát bộ nhớ và quyết ịnh những
gì có thể ược lưu trữ trong khu nhớ dành riêng ó. Vì thế, bằng việc gán các kiểu dữ liệu lOMoARcPSD| 36067889
khác nhau cho các biến, bạn có thể lưu trữ số nguyên, thập phân hoặc ký tự trong các biến này.
Gán các giá trị cho biến trong Python
Trong Python, chúng ta không cần khai báo biến một cách tường minh. Khi bạn gán bất
cứ giá trị nào cho biến thì biến ó ược khai báo một cách tự ộng. Phép gán ược thực hiện bởi toán tử =.
Toán hạng trái của toán tử = là tên biến và toán hạng phải là giá trị ược lưu trữ trong biến. Ví dụ: a = 20 # Mot phØp gan so
nguyen b = 100.0 # Mot so thuc ten = "Hoang" # Mot chuoi print a print b print ten
Ở ây, 20, 100.0 và Hoang là các giá trị ược gán cho các biến a, b và ten. Các lệnh trên sẽ cho kết quả sau: 20 100.0 Hoang
Phép a gán (multiple assignment) trong Python
Python cho phép bạn gán một giá trị ơn cho một số biến một cách ồng thời. Python hỗ trợ hai kiểu a gán sau:
Gán giá trị ơn cho nhiều biến, ví dụ: a = b = c = 1
Hoặc gán nhiều giá trị cho nhiều biến, ví dụ: lOMoARcPSD| 36067889 a,b,c=5,10,15 print a print b print c
Trong trường hợp này, các giá trị sẽ ược gán theo thứ tự mà các biến xuất hiện. ác
kiểu dữ liệu chuẩn trong Python
Dữ liệu mà ược lưu trữ trong bộ nhớ có thể có nhiều kiểu khác nhau. Ví dụ, lương của
công nhân ươc lưu trữ dưới dạng một giá trị số còn ịa chỉ của họ ược lưu trữ dưới dạng
các ký tự chữ-số. Python có nhiều kiểu dữ liệu chuẩn ược sử dụng ể xác ịnh các hành
ộng có thể xảy ra trên chúng và phương thức lưu trữ cho mỗi kiểu.
Python có 5 kiểu dữ liệu chuẩn là: • Kiểu Number • Kiểu String • Kiểu List • Kiểu Tuple • Kiểu Dictionary
Ngoài kiểu Number và kiểu String mà có thể bạn ã ược làm quen với các ngôn ngữ lập
trình khác thì ở trong Python còn xuất hiện thêm ba kiểu dữ liệu ó là List, Tuple và
Dictionary. Chúng ta sẽ tìm hiểu chi tiết từng kiểu dữ liệu trong một chương riêng (Bạn
theo link ể tìm hiểu chúng). Tiếp theo chúng ta tìm hiểu một số hàm ã ược xây dựng sẵn
trong Python ể thực hiện phép chuyển ổi giữa các kiểu dữ liệu.
Chuyển ổi kiểu trong Python
Đôi khi bạn cần thực hiện một số phép chuyển ổi kiểu ể thỏa mãn hàm hoặc phương
thức nào ó, … Để thực hiện iều này, ơn giản là bạn sử dụng tên kiểu như là một hàm.
Dưới ây là một số hàm ã ược xây dựng sẵn ể chuyển ổi từ một kiểu này sang một kiểu
khác. Các hàm này trả về một ối tượng mới biểu diễn giá trị ã ược chuyển ổi. Hàm Miêu tả int(x [,base])
Chuyển ổi x thành một số nguyên. Tham số base xác ịnh cơ
sở nếu x là một chuỗi lOMoARcPSD| 36067889 long(x [,base] )
Chuyển ổi x thành một long int. Tham số base xác ịnh cơ sở nếu x là một chuỗi
Chuyển ổi x thành một số thực float(x)
Chuyển ổi x thành một số phức complex(real [,imag])
Chuyển ổi x thành một chuỗi str(x)
Chuyển ổi ối tượng x thành một chuỗi biểu thức repr(x)
Ước lượng một chuỗi và trả về một ối tượng eval(str)
Chuyển ổi s thành một Tuple tuple(s)
Chuyển ổi s thành một List list(s)
Chuyển ổi s thành một Set set(s) dict(d)
Tạo một Dictionary. Tham số d phải là một dãy các Tuple của cặp (key, value)
Chuyển ổi s thành một Fronzen Set frozenset(s)
Chuyển ổi một số nguyên thành một ký tự chr(x)
Chuyển ổi một số nguyên thành một ký tự Unicode unichr(x)
Chuyển ổi một ký tự ơn thành giá trị nguyên của nó ord(x)
Chuyển ổi một số nguyên thành một chuỗi thập lục phân hex(x)
Chuyển ổi một số nguyên thành một chuỗi bát phân oct(x) lOMoARcPSD| 36067889 Toán tử trong Python
Toán tử là các biểu tượng cụ thể mà thực hiện một số hoạt ộng trên một số giá trị và
cho ra một kết quả. Ví dụ biểu thức 2 + 3 = 5, thì 2 và 3 ược gọi là các toán hạng và dấu
+ ược gọi là toán tử. Các loại toán tử trong Python
Python hỗ trợ các loại toán tử sau: • Toán tử số học •
Toán tử quan hệ (còn gọi là toán tử so sánh) • Toán tử gán • Toán tử logic • Toán tử membership • Toán tử identify • Toán tử thao tác bit
Toán tử số học trong Python Toán tử Miêu tả //
Thực hiện phép chia, trong ó kết quả là thương số sau khi ã xóa các chữ số sau dấu phảy + Phép cộng - Phép trừ * Phép nhân / Phép chia % Phép chia lấy phần dư **
Phép lấy số mũ (ví dụ 2**3 cho kết quả là 8)
Dưới ây là ví dụ minh họa các toán tử số học trong Python. >>> 10+20 30 lOMoARcPSD| 36067889 >>> 20-10 10 >>> 10*2 20 >>> 10/2 5 >>> 10%3 1 >>> 2**3 8 >>> 10//3 3 >>>
Toán tử quan hệ trong Python
Python hỗ trợ các toán tử quan hệ (toán tử so sánh) sau: Toán tử Miêu tả <
Nhỏ hơn. Nếu giá trị của toán hạng trái là nhỏ hơn giá trị của toán hạng phải, thì iều kiện trở thành true > Lớn hơn <= Nhỏ hơn hoặc bằng <= Lớn hơn hoặc bằng == Bằng != Không bằng <>
Không bằng (tương tự !=)
Dưới ây là ví dụ minh họa cho các toán tử quan hệ trong Python: >>> 10<20 True >>> 10>20 lOMoARcPSD| 36067889 False >>> 10<=10 True >>> 20>=15 True >>> 5==6 False >>> 5!=6 True >>> 10<>2 True >>> Toán tử gán trong Python
Python hỗ trợ các loại toán tử gán sau: Toán tử Miêu tả = Phép gán /=
Chia toán hạng trái cho toán hạng phải, và gán kết quả cho toán hạng trái += Cộng và gán -= Trừ và gán *= Nhân và gán %=
Chia lấy phần dư và gán **= Lấy số mũ và gán //=
Thực hiện phép chia // và gán
Dưới ây là ví dụ minh họa cho các toán tử gán trong Python: >>> c=10 >>> c lOMoARcPSD| 36067889 10 >>> c+=5 >>> c 15 >>> c-=5 >>> c 10 >>> c*=2 >>> c 20 >>> c/=2 >>> c 10 >>> c%=3 >>> c 1 >>> c=5 >>> c**=2 >>> c 25 >>> c//=2 >>> c 12 >>> Toán tử logic trong Python
Python hỗ trợ các toán tử logic sau: Toán tử Miêu tả and
Phép Và. Nếu cả hai iều kiện là true thì kết quả sẽ là true or
Phép Hoặc. Nếu một trong hai iều kiện là true thì kết quả là true lOMoARcPSD| 36067889 not
Phép phủ ịnh. Được sử dụng ể ảo ngược trạng thái logic của toán hạng
Dưới ây là ví dụ minh họa cho các toán tử logic trong Python: a=5>4 and 3>2 print a b=5>4 or 3<2 print b c=not(5>4) print c Kết quả là: >>> True True False >>>
Toán tử thao tác bit trong Python
Toán tử thao tác bit làm việc trên các bit và thực hiện các hoạt ộng theo từng bit. Giả sử
a = 60 và b = 13 thì ịnh dạng nhị phân của chúng lần lượt là a = 0011 1100 và b = 0000 1101.
Python hỗ trợ các toán tử thao tác bit sau: Toán tử Miêu tả Ví dụ &
(a & b) cho kết quả 0000 1100
Sao chép một bit tới kết quả nếu bit này tồn tại trong cả hai toán hạng |
(a | b) = 61 (tức là 0011 1101)
Sao chép một bit tới kết quả nếu bit này tồn tại trong bất kỳ toán hạng nào ^
(a ^ b) = 49 (tức là 0011 0001)
Sao chép bit nếu nó ược set (chỉ bit 1) chỉ trong một toán hạng lOMoARcPSD| 36067889 ~
(~a ) = -61 (tức là 1100 0011)
Đây là toán tử một ngôi, ược sử dụng ể ảo ngược bit <<
a << = 240 (tức là 1111 0000)
Toán tử dịch trái nhị phân. Giá trị của toán hạng trái
ược dịch chuyển sang trái một số lượng bit ã ược
xác ịnh bởi toán hạng phải >>
a >> = 15 (tức là 0000 1111)
Toán tử dịch phải nhị phân. Giá trị của toán hạng trái
ược dịch chuyển sang phải một số lượng bit ã ược
xác ịnh bởi toán hạng phải
Dưới ây là ví dụ minh họa cho các toán tử thao tác bit trong Python: a = 60 # 60 = 0011 1100 b = 13 # 13 = 0000 1101 c =
0 c = a & b; # 12 = 0000 1100
print "Dong 1 - Gia tri cua c la ", c c = a | b; # 61 = 0011 1101
print "Dong 2 - Gia tri cua c la ", c c = a ^ b; # 49 = 0011 0001
print "Dong 3 - Gia tri cua c la ", c c = ~a; # -61 = 1100 0011
print "Dong 4 - Gia tri cua c la ", c
c = a << 2; # 240 = 1111 0000
print "Dong 5 - Gia tri cua c la ", c
c = a >> 2; # 15 = 0000 1111
print "Dong 6 - Gia tri cua c la ", c
Toán tử membership trong Python
Toán tử membership trong Python kiểm tra xem biến này có nằm trong dãy (có là một
trong các thành viên của dãy) hay không. Có hai toán tử membership trong Python là: Toán tử Miêu tả in
Trả về true nếu một biến là nằm trong dãy các biến, nếu không là false not in
Trả về true nếu một biến là không nằm trong dãy các biến, nếu không là false lOMoARcPSD| 36067889
Dưới ây là ví dụ minh họa cho các toán tử membership trong Python: a=10 b=20 list=[10,20,30,40,50]; if (a in list):
print "a la trong list da cho" else:
print "a la khong trong list da cho" if(b not in list):
print "b la khong trong list da cho" else:
print "b la trong list da cho" Kết quả là:
>>> a la trong list da cho b la trong list da cho >>>
Toán tử identify trong Python
Toán tử identify so sánh các vị trí ô nhớ của hai ối tượng. Python có hai toán tử identify là:
Dưới ây là ví dụ minh họa cho các toán tử identify trong Python: Toán tử Miêu tả is
Trả về true nếu các biến ở hai bên toán tử cùng trỏ tới một ối tượng, nếu không là false is not
Trả về false nếu các biến ở hai bên toán tử cùng trỏ tới một ối tượng, nếu không là true a=20 b=20 if( a is b): print lOMoARcPSD| 36067889 ?a,b co cung identity? else: print ?a, b la khac nhau?
b=10 if( a is not b): print ?a,b co identity khac nhau? else: print ?a,b co cung identity? Kết quả là:
>>> a,b co cung identity a,b co identity khac nhau >>>
Thứ tự ưu tiên của các toán tử trong Python
Bạn cần chú ý thứ tự ưu tiên của các toán tử ể mang lại kết quả như mong muốn trong
quá trình làm việc. Bảng dưới ây liệt kê tất cả các toán tử trong Python với thứ tự ưu
tiên từ cao xuống thấp. Toán tử Miêu tả ** Toán tử mũ ~ + -
Phần bù; phép cộng và trừ một ngôi (với tên phương thức lần lượt là +@ và -@) * / % //
Phép nhân, chia, lấy phần dư và phép chia // + - Phép cộng và phép trừ >> <<
Dịch bit phải và dịch bit trái & Phép Và Bit ^ | Phép XOR và OR <= < > >= Các toán tử so sánh <> == !=
Các toán tử so sánh bằng = %= /= //= -= += *= **= Các toán tử gán is is not Các toán tử Identity lOMoARcPSD| 36067889 in not in Các toán tử Membership not or and Các toán tử logic