Chương 1: Giới Thiệu Python Đặc điểm Ưu điểm: • Đa biến hóa Cho phép sử dụng nhiều phương pháp lập trình Kiểu động, kiểu vịt và kiểu mạnh • Python mạnh và nhanh Kem sẵn in Battery
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC ĐÀ LẠT KHOA TOÁN TIN
ĐỒ ÁN MÔN HỌC
CHUYÊN ĐỀ: TÌM HIỂU NGÔN NGỮ LẬP TRÌNH
PYTHON
GIẢNG VIÊN HƯỚNG DẪN: Dương Văn Hải
SINH VIÊN THỰC HIỆN : Lê Quốc Hoàng_1610046 : Huỳnh Thị Thảo Vy_1610058 LỚP : TNK40
KHÓA : 2016-2010
Đà Lạt,2019
Trang 2Lời cảm ơn
Trong thời gian làm đồ án môn học, chúng em đã nhận được rất nhiều sự giúp đỡ, đóng góp ý kiến và chỉ bảo nhiệt tình của thầy cô và bạn bè
Chúng em xin gửi lời cảm ởn chân thành đến thầy Dương Văn Hải giảng viên trường đại học Đà Lạt người đã tận tình chỉ bảo, hướng dẫn chúng em trong suốt quá trình làm đồ án
Tuy nhiên trong quá trình nghiên cứu đề tài, do kiến thức chuyên ngành còn hạn chế nên em vẫn còn nhiều thiếu sót khi tìm hiểu, đánh giá và trình bày về đề tài Rất mong nhận được sự quan tâm, góp ý của các thầy / cô giảng viên bộ môn để đề tài của chúng em được đầy đủ và hoàn chính hơn
Xin chân thành cảm ơn
Trang 3LỜI NÓI ĐẦU
Ngôn ngữ Python được Guido van Rossum tạo ra cuối năm 1990
Python khá giống Pert, Ruby, Scheme, Smalltalk, Tcl
Python được phát triển trong một dự án mã mở do một tổ chức phi lợi nhuận Python Software Foundation quản lý
Python được phát triển để chạy trên nền Unix Nhưng theo thời gian, nó đã bành trướng sang mọi hệ điều hành từ MS_DOS đến MAC OS, OS/2, Windows, Linux và một số hệ điều hành khác thuộc họ Unix
Python là ngôn ngữ bậc cao (high-level), có hình thức sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới học lập trình Cho phép người lập trình viết mã với số lần gõ phím tối thiểu
Python cũng là một trong những ngôn ngữ phổ biến nhất thế giới
Most popular programming language 2019
Trang 4MỤC LỤC
Trang 5Chương 1: Giới Thiệu Python
Đặc điểm (Ưu điểm):
• Đa biến hóa
Cho phép sử dụng nhiều phương pháp lập trình
Kiểu động, kiểu vịt và kiểu mạnh
• Python mạnh và nhanh
Kem sẵn in (Battery included)
Viết mã nhanh với số lần gõ phiếm tối thiểu
• Hòa Hợp tốt với các thức khác
Java ⟶ Jython
NET → IronPython, Python for NET
Viết module mở rộng cho C/C++
• Python chạy mọi nơi
Unix
Windows
Mac
Nokia 560
Nhược điểm:
Ngôn ngữ lập trình python không có các thuộc tính như : protected,private hay public, không có vòng lặp do…while và switch….case
Tuy tốc độ xử lý của ngôn ngữ lập trình Python nhanh hơn PHP nhưng không bằng JAVA và C++
Cài đặc môi trường
Trong bài học này chúng ta sẽ tìm hiểu các điều sau đây:
• Download và cài đặt môi trường Python
• Giới thiệu Sublime Text Editor sử dụng trong khóa học này
Chạy chương trình
Trong bài này, chúng ta sẽ tìm hiểu:
• Thao tác trực tiếp với Interactive Prompt
• Chạy chương trình bằng command line
Trang 6 Tại sao phải chọn ngôn ngữ Python?
Ngôn ngữ lập trình Python dễ học, không quá rườm rà trong việc khai báo
Code ngắn gọn nhằm giúp cho bạn lập trình một cách nhanh chóng và đạt hiệu quả cao
Hiện nay, có nhiều trang web lớn sử dụng ngôn ngữ lập trình này như: GOOGLE, Facebook, youtube
Ngôn ngữ lập trình Python sẽ giúp bạn tạo nền tảng vững chắc để bước vào 1 thế giới lập trình
Ứng dụng trong thực tế
Làm web: Django framework Udacity, youtube, dropbox được xây dựng (một phần lớn) sử dụng python
Làm game: Pygame Có một game do người Việt làm, gần đây khá nổi (nếu bạn là người mê anime/manga/VN sẽ biết) là Millia 44 cũng được xây dựng bằng python, đương nhiên python không phải là lựa chọn tốt nhất để xây dựng game
Máy học: Theano, tensorflow, scikit-learn
Khoa học máy tính: Python Opencv, numpys, panda, scipy
Lập trình cho bo mạch: Ardruino, raspberry pi
Trang 7Chương 2: Tổng quan về Python
Biến
• Khai báo một biến bằng cách gán giá trị cụ thể cho no Biến sẽ tự động được giải phóng khi ra khỏi phạm vi của chương trình sử dụng của nó
Cú pháp:
Ví dụ:
# Đoạn code sau đây khai báo 3 biến tuoi, ten và PI và giá trị của chúng
>>>tuoi = 17
>>>ten = “How Kteam”
>>>PI = 3.14
• Số nguyên
Số nguyên bao gồm các số nguyên dương (1, 2, 3, ), các số nguyên âm (-1, -2, -3) và số 0 Trong Python, kiểu dữ liệu số nguyên cũng không
có gì khác biệt
Ví dụ: Gán giá trị cho một biến a là 4 và xuất ra kiểu dữ liệu của a
Một điểm đáng chú ý trong Python 3.X đó là kiểu dữ liệu số nguyên là
vô hạn Điều này cho phép bạn tính toán với những số cực kì lớn, điều
mà đa số các ngôn ngữ lập trình khác KHÔNG THỂ
• Số thực
Trang 8Gán giá trị của biến f là 1.23 và xuất ra kiểu dữ liệu của f.
Lưu ý: Thường khi chúng ta viết số thực, phần nguyên và phần thập phân được tách nhau bởi dấu phẩy ( , ) Thế nhưng trong Python, dấu phẩy ( , ) này được thay thế thành dấu chấm ( )
Số thực trong Python có độ chính xác xấp xỉ 15 chữ số phần thập phân
Ví dụ: Số thực 10/3
• Phân số
Tạo một phân số
Nhập phân số ¼, 3/9, ¾,
• Số phức
Gán giá trị số phức cho một biến
Xuất ra một biến số phức
a Phần tử thực
Trang 9b Phần tử ảo
Kiểu dữ liệu
• Số: int, long, float, comlex
Toán tử: + - / * %
x = 14
y = 3 print “Sum: “, x+y print “Product: ”,x*y print “Remainder: ”,x%y
Sum:17 Product:42 Remainder:2
x= 5 print “x started as “,x
x = x * 2 print “Then x was ”,x
x = x + 1 print “finally x was ”,x
x started as 5 Then x was 10 Finally x was 11
• Chuỗi: str
a = “pan”
b = “cake”
a = a + b
print a
⟶ pancake
Đặt trong cặp dấu:’,”
Nối chuỗi: +,+=
Độ dài chuối x: len(x)
Định dạng chuỗi: Formatted String % Inesrtion Tuple
>>>“aaaa%saaaa%saaa”%(“gcgcgc”,”tttt”)
‘aaaagcgcgcaaaattttaaa
Một số phương thức: upper, lower, split, replace
Trang 10Chuyển chữ hoa Chuyển chữ thường
Thay thế i thành a
x = “A simple sentence”
print x print x.upper() print x.lower()
x = x.replace(“i”, ”a”) print x
A simple sentence
A SIMPLE SENTENCE
a simple sentence
A simple sentence
o Escape Sequence(chuỗi trần) là một chuỗi (chính xác là kí tự) đặc biệt trong Python Bắt đầu với một dấu \
Cú pháp
Python có rất nhiều các escape sequence Tuy nhiên, Kteam sẽ giới thiệu một số escape sequence chúng ta hay sử dụng nhất đới với mức độ cơ bản
o Indexing
Trang 11Trong một chuỗi của Python, các kí tự tạo nên chuỗi đó sẽ được đánh số từ 0 tới n –
1 từ trái qua phải với n là số kí tự có trong chuỗi
Cú pháp
o Cắt chuỗi
Đây là một thứ lợi hại của Python Dựa trên Indexing, Python cho phép chúng ta cắt chuỗi Đương nhiên, các bạn cần nắm rõ được phương pháp Indexing
1 Cú pháp
Lưu ý: Khi bạn đã đặt None ở vị trí bắt đầu, có nghĩa vị trí bắt đầu là 0, và khi đặt None ở vị trí kết thúc, thì có nghĩa là vị trí kết thúc sẽ là n với n là số kí tự trong chuỗi
2 Cú pháp cắt từ trái sang phải
o Thay đổi nội dung trong chuỗi
Trở về với khái niệm Indexing Bạn có nghĩ tới việc thay đổi nội dung chuỗi nhờ Indexing không? Nếu như bạn đã từng học với các ngôn ngữ như Pascal, C, C++ thì có thể bạn sẽ sử dụng phương pháp Indexing
Nhưng điều đáng buồn, Python không cho phép điều đó
Trang 12Bạn chỉ có thể thay thế nó một cách gián tiếp giá trị chuỗi mà biến của bạn lưu giữ bằng cách sử dụng việc cắt chuỗi và toán tử + để tạo ra một chuỗi mới và gán lại vào biến của bạn
• Kiểu danh sách: list
nucleotides = [‘a’, ‘c’, ‘g', ‘t’]
print “ Nucleotides: “, nucleodides
Nucleotides : [‘a’, ‘c’, ‘g', ‘t’]
a C g t Danh sách
element 0 element 2 element 3 Bắt đầu từ phần tử 0 element 1
Truy cập đến các phần tử bằng chữ số
Toán tử: +, *
Các phương thức: append, extend, insert, remove, pop, index, count, sort, reserve
x = [‘a’, ‘c’, ‘g', ‘t’]
i=2 print x[0], x[1], x[2]
a g t
x = [‘a’, ‘t’, ‘g', ‘c’]
print “x=”,x x.sort() print ‘x=’,x x.revese() print “x =”,x
x = a t g c
x = a c g t
x = t g c a
• Kiểu tupe
Giống list nhưng kiểu dữ liệu này không thay đổi được
Trang 13 Sử dụng dấu () để khai báo
t =(1,2,3,4,5)
q =(1,2,(3,4),5)
• Kiểu từ điển
{từ khóa: giá trị}
Phương thức : keys, values, pop, items, has_key,
genes[“cop”]=”45837” Dùng dấu [] để tra cứu
đến khóa
>>> tlf ={“Michael”:
40062, \”Bingding”: 40064,
”Andreas”: 40063}
>>> tlf.keys()
[‘Bingdinh’, ‘Andreas’,
‘Michael’]
>>> tlf.valuse()
[40064, 40063, 40062]
>>> tlf.[“Michael”]
40062
>>>tlf.has_key(“Lars”)
False
>>> tlf[“Lars”]=40070
>>> tlf.has_key(“Lars”) #now
it’s there
True
>>> for name in tlf.keys():
print name, tlf.[name]
Lars 40070
Bingding 40064
Andreas 40063
Michael 40062
Từ điển
Xem các từ khóa
Xem các giá trị
Kiểm tra từ khóa
Chèn một cặp từ khóa-giá trị
Duyệt từ điển và in ra
Trang 14• Kiểu tập hợp: set
Tập các phần tử không có thứ tự và các phần tử không trùng lặp
Các phép toán: - (hiệu), ^ (hiệu đối xứng), & (giao), | (hợp)
>>> a = set (‘abracadabra’)
>>> b = set(‘alacazam’)
>>> a = # unique letters in a set([‘a’.‘r’,’b’,’c’,’d’])
>>> a-b # letters in a but not in b set([‘r’,’d’,’b’])
>>> a|b # letters in either a or b set([‘a’,’c’,’r’,’d’,’m’,’z’,’l’])
>>> a&b #letters in both a and b set([‘a’,’c’])
>>> a^b #letters in a or b but not both set([‘r’,’d’,’b’,’m’,’z’,’l’])
Cấu trúc rẽ nhánh
if <expression>:
<statements>
elif <expression>:
<statements>
else:
<statements>
Cấu trúc lặp
while <expression>:
<statements>
else:
<statements>
For <name> in
<container>:
<statements>
else:
<statements>
Các lệnh break, continue, pass
Ví dụ:
Nhớ thụt đầu dòng
x = 194
y = 100
if x > y:
print x, “is greater than”, y else
print x, “is less than”, y
Trang 15149 is greater than 100
x = 0
while x < 100:
print x,
x +=1
a = [‘bo’, ’me’, ’con’]
for x in a:
print x
0 1 2 3 4 5 6 7 8 9 bo me con
Hàm (function)
• Cú pháp
def ten_hàm (tham_biến_1, tham_biến_2, )
#lệnh
return gia_trị_hàm
• Gọi hàm
• Chồng hàm : không hỗ trợ
• Hàm inline: sử dụng từ khóa lambda
• Hàm với tham số có giá trị mặc định
• Hàm với danh sách đối số tùy ý
def max(a):
max = a[0]
for x in a:
if x > max:
max = x
return max
data =[1, 5, 1, 12, 3, 4, 6]
print “Data:”, data
print Maximum:”, max(data)
Khai báo hàm Thân hàm
Trả về
Gọi hàm
Data:[1, 5, 1, 12, 3, 4, 6]
Maximum: 12
Module và gói
• Các module chuẩn: sys (system), math (mathematics), re (regular expressions)
• Load module sử dụng từ khóa improt
• Có thể tự viết module, lưu với tên py
Trang 16import math
print math.sqrt(100) 10
Trang 17Chương 3: Ứng dụng làm một số bài tập minh họa bằng ngôn ngữ Python