cd dh công nghệ thông tin lập trình python

- 0 / 0
(Tài liệu chưa được thẩm định)
Nguồn:
Người gửi: nguyễn kim nguyên
Ngày gửi: 18h:15' 28-02-2024
Dung lượng: 3.2 MB
Số lượt tải: 47
Nguồn:
Người gửi: nguyễn kim nguyên
Ngày gửi: 18h:15' 28-02-2024
Dung lượng: 3.2 MB
Số lượt tải: 47
Số lượt thích:
0 người
NGÔN NGỮ LẬP TRÌNH
ThS. Phạm Tư Cường
Nội dung
•
•
•
•
•
•
•
•
•
•
Giới thiệu
Lập trình căn bản
Các kiểu dữ liệu phức
Lập trình hướng đối tượng
Vào/ra, ngoại lệ
Lập trình mạng
Lập trình Web
Python-MySQL
Giao diện GUI
Vẽ đồ thị
Giới thiệu Python
• Python là ngôn ngữ lập trình cấp cao, tương tác, thông dịch, hướng đối
tượng
• Do Guido van Rossum đề xuất từ 1985 - 1990
• Mã nguồn Python: giấy phép GNU General Public License (GPL)
• Python sẵn dùng trên Unix, Linux, Mac OS, Windows
• Top 5 ngôn ngữ lập trình phổ biến
• Được sử dụng bởi các tổ chức tập đoàn như Wikipedia, Google, Yahoo!,
CERN
Giới thiệu Python
•
•
•
•
Dễ học (Easy-to-learn)
Dễ đọc (Easy-to-read)
Dễ bảo trì (Easy-to-maintain)
Thư viện chuẩn (standard library): tương thích UNIX, Linux, Windows và
Mac
• Chế độ tương tác: thực thi, kiểm tra, gỡ rối
• Khả chuyển (Portable): phần cứng, hệ điều hành
• Khả năng mở rộng (Extendable): thêm mô-đun
• Kết nối với các hệ quản trị CSDL
• Lập trình giao diện đồ họa GUI
• Quy mô chương trình (Scalable)
Giới thiệu Python
•
•
•
•
•
•
•
•
•
•
6
Python được sử dụng trong giảng dạy,
Tính toán khoa học,
Công nghệ sinh-tin học,
Phát triển ứng dụng Web,
Lập trình ứng dụng mạng, nghiên cứu an ninh mạng,
Kỹ thuật đồ họa, xử lý ảnh và thị giác máy tính,
Máy học và khai thác dữ liệu, xử lý ngôn ngữ tự nhiên, trí tuệ nhân tạo
Lập trình nhúng,
Quản trị hệ thống,
Lập trình trò chơi, v.v.
Nội dung
• Giới thiệu
• Lập trình căn bản
• Các kiểu dữ liệu phức
• Lập trình hướng đối tượng
• Vào/ra, ngoại lệ
• Lập trình mạng
• Lập trình Web
• Python-MySQL
• Giao diện GUI
• Vẽ đồ thị
Trình thông dịch Python
[nghi@localhost ~]$ python
Python 2.7.5 (default, Apr 10 2015, 08:09:05)
[GCC 4.8.3 20140911 (Red Hat 4.8.3-7)] on linux2
Type "help", "copyright", "credits" or "license"
information.
>>> print 'Hello World!'
Hello World!
>>> I
for
more
Thực thi chương trình Python
• Soạn thảo chương trình: PyCharm, Geany,
notepad++, Nano, Gedit, v.v.
•
Chương trình
hello.py
#!/usr/bin/python
print 'Hello World!'
bg]$ python hello.py
•[nghi@localhost
Thực thi hello.py
Hello World!
Cú pháp
• Phân biệt ký tự thường hoa
• Các từ khóa của Python
and
exec
not
as
finally
or
assert
break
for
from
pass
print
class
global
raise
continue
if
return
def
del
import
in
try
while
elif
is
with
Else
except
lambda
yield
Cú pháp
• Sử dụng # để chú thích 1 dòng trong chương trình
#
• Sử
comment
dụng ''' để chú thích 1 đoạn
'''
print("We are in a comment")
print ("We are still in a comment")
'''
• Dấu ' và " word
= 'word' sentence = "This
is a sentence." message = """This message
will ... span several lines."""
Cú pháp
• Sử dụng canh lề (bắt buộc) để bao các khối lệnh của hàm, lớp
hoặc luồng điều khiển
• Số khoảng trắng dùng để canh lề có thể nhiều ít tuỳ ý nhưng tất
cả lệnh trong một khối phải được canh lề như nhau
if True:
print "Answer"
print "True"
else:
print "False"
Cú pháp
• Lệnh được viết trên nhiều dòng sử dụng ký tự \ total
+ \
= item_one
item_two + \
item_three
• Lệnh được bao bằng các cặp dấu ngoặc: [], {}, () không cần phải sử
dụng ký tự \ để tiếp tục dòng
days = ['Monday', 'Tuesday', 'Wednesday',
'Thursday', 'Friday']
• Dấu ; để cách nhiều lệnh trên dòng
import sys; x = 'foo'; sys.stdout.write(x + '\n')
Cú pháp
• Nhóm nhiều câu lệnh đơn tạo nên một khối lệnh và cũng được gọi là bộ
(suites)
• Các lệnh phức như if, while, def và class cần một dòng header và một
bộ
• Dòng header bắt đầu câu lệnh (bằng một từ khoá tương ứng ví dụ như
if, def, …) và kết thúc bằng dấu hai chấm : theo sau là một suite
def hi(name):
print 'Hello ' + name
print 'Have a good day!'
hi('nghi')
Lệnh print trong Python 2
>
>> print 'hello' hello
>
>> print 'hi'J'there' hi there
>
>> a = 7.0
>
>> b = 2
>
>> name = 'toto'
>
» print '%f/%d = %f %(a, b, a/b) 7.000000/2 =
3.500000
>
>> print 'Hi %s' %name Hi toto
Lệnh input trong Python
> >> name = input("Please enter your name:
") Please enter your name: 'toto'
> >> print 'Hi %s' %name
Hi toto
> >> a = input("a = ")
a = 5
> >> b = input("b = ")
b = 7.2
> >> a+b
12.2
Biến, kiểu cơ bản, phép
toán
• Tên: ký tự bắt đầu phải là alphabet hoặc _
• Không cần khai báo, chỉ gán giá trị (sử dụng dấu =)
• Được tạo ra trong lần đầu gán giá trị
• Phạm vi biến: cục bộ, toàn cục
• Tham khảo đến đối tượng
• Thông tin về kiểu gắn liền với đối tượng
• Kiểu cơ bản: int, float, complex, bool, string
• Các phép toán số học: +, -, *, /, %, **
• Phép toán so sánh: ==, !=, >, >=, <, < =
• Phép toán luận lý: and, or, not
Biến, kiểu cơ bản, phép toán
> >> item_name = 'Computer'
> >> item_qty = 10
> >> item_value = 1000.23
>
>> print item_name, item_qty, item_value Computer 10
1000.23
> >> X = y = z = 1
> >> print X, y, z
1 1 1
> >> x,y,z = 1,2,'abed'
> >> print X, y, z
1
2 abed
>>> X, y = y, X
>>> print X, y
2
1
Biến, kiểu cơ bản, phép toán
>>> varl = "Python"
>>> def funcl():
... varl = "PHP"
... print "In side funcl() varl = ",varl ■ ■ ■
> >> def func2():
... global varl
... print "In side func2() global varl = ",varl
> >> funcl()
In side funcl() varl = PHP
> >> func2()
In side func2() global varl = Python
Biến, kiểu cơ bản, phép toán
> >> X = 7.2
> >> X
7.2
> >> type(x)
> >> X = 'hello'
> >> X
'hello'
> >> type(x)
> >> X = 123456789
> >> X ** 2
15241578750190521
> >> z = 3+2j
> >> t = 2-lj
(5+lj)
Biến, kiểu cơ bản, phép toán
>
>> X = 7
>
>> y = 2
>
>> x%y
1
>
>> x/y
3
>>> 1.0*x/y
3.5
>>> float(x)/y
3.5
>
>> a = 7.2
>
>> int(a)%y
1
>
>> b = True
>
>> type(b)
Biến, kiểu cơ bản, phép toán
> >> s = 'Hello World!'
> >> type(s)
> >> len(s)
12
> >> print s
Hello World!
> >> print s[0]
H
> >> print s[-l] Ị
> >> print s[2:5]
110
> >> print s[2:] llo
World!
> >> print s * 2
Hello World!Hello World!
> >> name = 'Ben ' +
str(10)
> >> print name
Ben 10
Cấu trúc điều khiển
• Cấu trúc rẽ nhánh if
if (cond1):
elif
(cond2): .
..
else:
Cấu trúc điều khiển
• Cấu
while
trúc
. . . (cond):
while
loop_body
. . .
lặp
Cấu trúc điều khiển
• Cấu trúc lặp for
for iter_var in seqence:
. . .
loop_body
. . .
25
Hàm
•
Hàm xây dựng sẵn trong các mô-đun
>
>> import OS
>
>> import random as rand
>
>> from math import sqrt, cos, sin
>
>> os.system('Is -1') total 32
-rw-rw-r-- 1
nghi
nghi
132
Dec
-rw-rw-r-- 1
nghi
nghi
41
Dec
-rw-rw-r-- 1
nghi
nghi
99
Dec
-rw-rw-r-- 1
nghi
nghi
729
Dec
-rw-rw-r-- 1
nghi
nghi
141
Dec
0
>
>> r = rand.random()
>
>> print r
0.617259044825
>
>> X = 64
>
>> sqrt(64)
8.0
20
20
20
20
20
19:37
11:36
11:39
15:28
19:32
for.py
hello.py
hi.py
var.py
while.py
Hàm
• Hàm do lập trình viên định nghĩa
def function_name ([parameters]):
. . .
body_of_the_function
. . .
return ...
• Tham số tùy chọn, có thể đặt giá trị mặc định
• Hàm có thể hoặc không trả về kết quả hoặc
• Đệ quy
Hàm
>>> def hi():
... print 'Hi there!'
> » hi()
Hi there!
> >> def invite(name = 'Toto'):
... print 'Dear', name
___ print 'It will be a great pleasure'
... print 'if you attend the birthday party of Tutu'
■
I ■
> >> invite('Philippe')
Dear Philippe
It will be a great pleasure
if you attend the birthday party of Tutu
Hàm
>>> def addTwo(a,
b): ... return a + b
> >> def divide(a, b):
... return a/bj a%b
•*•
> >> X = 2
»> y = 3
,
.
> >> z = addTwo(x, y)
> >> print z
5
> >> PJ q = divide(x,
y)
> >> print p, q
0 2
Hàm
>>> def gcd(m, n):
.., while (m != n):
—
if (m > n):
...
m = m - n
.. •
else:
. . .
n = n - m
.., return m
>>> def coPrime(a b)
if (gcd(a. :
= 1):
return
b)
else:
print "%d and %d are co-prime" %(a,b)
>>> X, y = 2, 5
>>> coPrime(Xj y) 2
and 5 are co-prime
Hàm
>>> def fact(n):
... if (n == 1):
...
return
1.. else:
.
...
return n*fact(nl)
> >> n = 5
> >> print '%d! = %d' %
(n,fact(n)) 5! = 120
Nội dung
• Giới thiệu
• Lập trình căn bản
• Các kiểu dữ liệu phức
• Lập trình hướng đối tượng
• Vào/ra, ngoại lệ
• Lập trình mạng
• Lập trình Web
• Python-MySQL
• Giao diện GUI
• Vẽ đồ thị
Kiểu String
>
>> a = 'Hello world!'
»> b = "Hello world!"
>
>> a == b True
>
>> a = "Khang's lecture"
>
>> print a
Khang's lecture
>
>> a = "One line.\
nAnother line."
>
>> print a One line.
Another line.
>
>> b = """One line, ...
another line, ... and some...
>
>> print b
One line, another line, and
some...
Kiểu String
>
>> a = "58"
»> type(a)
>
>> b=int(a)
>
>> b
58
>
>> type(b)
>
>> f =
float('1.2e-3')
>
>> f
0.0012
>
>> print f
0.0012
>
>> 0.0012
0.0012
>
>> eval('23-12')
11
Kiểu String
>
>> a = "Part 1"
>
>> b = "and part 2"
>
>> a + ' ' + b 'Part
>
>> s = a * 2
>
>> print s
Part IPart 1
>
>> s[0]
'P'
>
>> s[0:4]
'Part'
>
>> s[5:]
'IPart 1'
>
>> s[-l] '1'
>
>> s[6:-l]
'Part '
1
and part
2'
Kiểu String
> >> print s
Part IPart 1
> >> len(s)
12
> >> 'p' in s
False
> >> 'P' in s
True
> >> 'Part' in s
True
> >> s[0] = 'B'
Traceback (most recent call last):
File ”'\ line 1, in
TypeError: 'str' object does not support item
assignment
>
>> s = 'B' + s[l:]
>
>> print s
Bart IPart 1
Kiểu String
> >> s = 'a strings with stuff
>
>> s.count('st') 2
> >> s.find('Stu')
15
> >> s.split(' ')
['a', 'string/, 'with', 'stuff']
> >> three = '3'
>
>> three.isdigito True
> >> supper = s.upper()
> >> supper
'A STRING, WITH STUFF'
> >> s.rjust(30)
'
a string, with stuff
> >> "newlines\n\n\n".strip()
'newlines'
Kiểu List: Ordered collection of
objects
>
>> r
[1, 2.0, 3, 5]
>
>> type(r)
>
>> r[l]
2.0
>
>> r[-l]
5
> >> r[l:3] [2.0, 3]
>
>> w = r + [10, 19]
>
>> w
[1, 2.0, 3, 5, 10, 19]
>
>> t = [0.0] * 10
>
>> t
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Kiểu List
> >> r = [1, 2.0, 3, 5]
> >> r[3] = 'word'
> >> r
[1, 2.0, 3, 'word']
> >> r[0] = [9, 8]
> >> r
[[9, 8], 2.0, 3, 'word']
> >> r[0:3] = [1, 2, 5, 6]
> >> r
[1, 2, 5, 6, 'word']
> >> r[l:3] = []
> >> r
[1, 6, 'word']
> >> len(r)
3
> >> 6 in r
True
> >> r.index(6)
1
Kiểu List
>
>> r = [1, 2.0, 3, 5]
>
>> r.append('thing')
>
>> r
[1, 2.0, 3, 5, 'thing']
>
>> r.append(['another', 'list'])
>
>> r
[1, 2.0, 3, 5, 'thing', ['another',
'list']]
>
>> r = [1, 2.0, 3, 5]
>
>> r.extend(['item', 'another'])
>
>> r
[1, 2.0, 3, 5, 'item', 'another']
>
>> k = r.popO
>
>> k
' another'
>
>> r
[1, 2.0, 3, 5, 'item']
Kiểu List
>
>> r = [2, 5, -1, 0, 20]
>
>> r.sort()
>
>> r
[-1, 0, 2, 5, 20]
>
>> w = ['apa', '1', '2',
'1234']
>
>> w.sort()
>
>> w
['1', '1234', '2', 'apa']
>
>> w.reverse()
>
>> w
['apa', '2', '1234', '1']
>
>> V = w[: ]
>
>> V.reverse()
>
>> V
['1', '1234', '2', 'apa']
>
>> w
['apa', '2', '1234', '1']
Kiểu List
> >> s = 'biovitrum'
> >> w = list(s)
> >> w
't\ 'r', 'u\ 'm']
['b\ 'i\ 'o', 'v\ 'i\
> >> w.reverse()
> >> w
['m', 'u\ 'r', 't\ 'i\ 'V', 'o', 'i', 'b']
> >> r = ''.join(w)
> >> r 'murtivoib'
> >> d = '-'.join(w)
> >> d
'm-u-r-t-i-v-o-i-b'
> >> s = 'a few words'
> >> w = s.split()
> >> w
['a', 'few', 'words']
> >> ' I '.join(w) 'a
I few I words'
Kiểu List
> >> a = [1, 3,
2]
> >> b = a
> >> c = b[0:2]
> >> d = b[:]
> >> b.sort()
> >> a
[1, 2, 3]
Kiểu Tuples (as List, except immutable)
> >> t = (1, 3,
2)
> >> t[l]
3
> >> (a, b, c) =
t
> >> a
1
> >> b
3
> >> a, b, c
(1, 3' 2)
> >> a, b = b, a
> >> 3j b
> >> r = list(t)
> >> r
[1, 3, 2]
> >> tuple(r)
(1, 3, 2)
Kiểu Dictionary
An unordered collection of key/value
>> pairs
h = {'key': 12, 'nyckel': 'word'}
>
>
>> h['key']
12
>
>> h.has_key('nyckel')
True
>
>> h['Per'] = 'Kraulis'
>
>> h
{'nyckel': 'word', 'Per': 'Kraulis', 'key': 12}
>
>> {'nyckel': 'word', 'Per': 'Kraulis', 'key': 12}
{'nyckel': 'word', 'key': 12, 'Per': 'Kraulis'}
>» h['Per'] = 'Johansson1
>
>> h
{'nyckel': 'word', 'Per': 'Johansson', 'key': 12}
>
>> h = {'key': 12, 'nyckel': 'word'}
>
>> del h['key']
>
>> h
{'nyckel': 'word'}
Kiểu Dictionary
> >> h = {'key': 12, 'nyckel':
'word'}
> >> 'Per' in h
False
»> h['Per']
Traceback (most recent call last):
File "", line 1, in
KeyError: 'Per'
> >> h.get('Per', 'unknown')
'unknown'
> >> h.get('key', 'unknown')
12
> >> h.keys()
['nyckel, key']
> >> h.values()
['word', 12]
> >> len(h)
Kiểu Dictionary
> >> h = {'key': 12, 'nyckel': 'word'}
> >> g = h.copyO
> >> del h['key']
> >> h
{'nyckel': 'word'}
> >> g
{'nyckel': 'word', 'key': 12}
> >> h['Per'] = 'Johansson'
> >> h
{'nyckel': 'word', 'Per': 'Johansson'}
> >> h.update(g)
> >> h
{'nyckel': 'word', 'key': 12, 'Per':
'Johansson'}
Nội dung
• Giới thiệu
• Lập trình căn bản
• Các kiểu dữ liệu phức
• Lập trình hướng đối tượng
• Vào/ra, ngoại lệ
• Lập trình mạng
• Lập trình Web
• Python-MySQL
• Giao diện GUI
• Vẽ đồ thị
Lập trình hướng đối tượng
•
•
•
•
•
•
•
•
•
•
•
•
Đối tượng (object)
Lớp (class)
Thực thể / thể hiện (instance)
Trạng thái (state)
Phương thức (method)
Truyền thông điệp (message passing)
Trừu tượng hoá (abstraction)
Đóng gói (encapsulation)
Kế thừa (inheritance)
Đa hình (polymorphism)
Tổng quát hoá (generalization)
Cụ thể hoá (specialization)
Lập trình hướng đối tượng
• Định nghĩa lớp
class ClassName:
'Optional class documentation string' class_suite
• class_suite: các thuộc tính, phương thức (hàm)
• Tham số đầu tìên của phương thức thường được đặt tên là self để thỏa:
obj.meth(args) = class.meth(obj, args)
• name: public, _name: protected,name: private
Định nghĩa lớp
>>> class Employee:
'Common base class for all employees'
empCount = 0
def __init__(selfJ name, salary): self.name = name
self.salary = salary Employee.empCount += 1
def displaycount(self):
print "Total Employee %d" % Employee.empCount
def displayEmployee(self):
print "Name: "j self.name, ", Salary: ", self.salary
ThS. Phạm Tư Cường
Nội dung
•
•
•
•
•
•
•
•
•
•
Giới thiệu
Lập trình căn bản
Các kiểu dữ liệu phức
Lập trình hướng đối tượng
Vào/ra, ngoại lệ
Lập trình mạng
Lập trình Web
Python-MySQL
Giao diện GUI
Vẽ đồ thị
Giới thiệu Python
• Python là ngôn ngữ lập trình cấp cao, tương tác, thông dịch, hướng đối
tượng
• Do Guido van Rossum đề xuất từ 1985 - 1990
• Mã nguồn Python: giấy phép GNU General Public License (GPL)
• Python sẵn dùng trên Unix, Linux, Mac OS, Windows
• Top 5 ngôn ngữ lập trình phổ biến
• Được sử dụng bởi các tổ chức tập đoàn như Wikipedia, Google, Yahoo!,
CERN
Giới thiệu Python
•
•
•
•
Dễ học (Easy-to-learn)
Dễ đọc (Easy-to-read)
Dễ bảo trì (Easy-to-maintain)
Thư viện chuẩn (standard library): tương thích UNIX, Linux, Windows và
Mac
• Chế độ tương tác: thực thi, kiểm tra, gỡ rối
• Khả chuyển (Portable): phần cứng, hệ điều hành
• Khả năng mở rộng (Extendable): thêm mô-đun
• Kết nối với các hệ quản trị CSDL
• Lập trình giao diện đồ họa GUI
• Quy mô chương trình (Scalable)
Giới thiệu Python
•
•
•
•
•
•
•
•
•
•
6
Python được sử dụng trong giảng dạy,
Tính toán khoa học,
Công nghệ sinh-tin học,
Phát triển ứng dụng Web,
Lập trình ứng dụng mạng, nghiên cứu an ninh mạng,
Kỹ thuật đồ họa, xử lý ảnh và thị giác máy tính,
Máy học và khai thác dữ liệu, xử lý ngôn ngữ tự nhiên, trí tuệ nhân tạo
Lập trình nhúng,
Quản trị hệ thống,
Lập trình trò chơi, v.v.
Nội dung
• Giới thiệu
• Lập trình căn bản
• Các kiểu dữ liệu phức
• Lập trình hướng đối tượng
• Vào/ra, ngoại lệ
• Lập trình mạng
• Lập trình Web
• Python-MySQL
• Giao diện GUI
• Vẽ đồ thị
Trình thông dịch Python
[nghi@localhost ~]$ python
Python 2.7.5 (default, Apr 10 2015, 08:09:05)
[GCC 4.8.3 20140911 (Red Hat 4.8.3-7)] on linux2
Type "help", "copyright", "credits" or "license"
information.
>>> print 'Hello World!'
Hello World!
>>> I
for
more
Thực thi chương trình Python
• Soạn thảo chương trình: PyCharm, Geany,
notepad++, Nano, Gedit, v.v.
•
Chương trình
hello.py
#!/usr/bin/python
print 'Hello World!'
bg]$ python hello.py
•[nghi@localhost
Thực thi hello.py
Hello World!
Cú pháp
• Phân biệt ký tự thường hoa
• Các từ khóa của Python
and
exec
not
as
finally
or
assert
break
for
from
pass
class
global
raise
continue
if
return
def
del
import
in
try
while
elif
is
with
Else
except
lambda
yield
Cú pháp
• Sử dụng # để chú thích 1 dòng trong chương trình
#
• Sử
comment
dụng ''' để chú thích 1 đoạn
'''
print("We are in a comment")
print ("We are still in a comment")
'''
• Dấu ' và " word
= 'word' sentence = "This
is a sentence." message = """This message
will ... span several lines."""
Cú pháp
• Sử dụng canh lề (bắt buộc) để bao các khối lệnh của hàm, lớp
hoặc luồng điều khiển
• Số khoảng trắng dùng để canh lề có thể nhiều ít tuỳ ý nhưng tất
cả lệnh trong một khối phải được canh lề như nhau
if True:
print "Answer"
print "True"
else:
print "False"
Cú pháp
• Lệnh được viết trên nhiều dòng sử dụng ký tự \ total
+ \
= item_one
item_two + \
item_three
• Lệnh được bao bằng các cặp dấu ngoặc: [], {}, () không cần phải sử
dụng ký tự \ để tiếp tục dòng
days = ['Monday', 'Tuesday', 'Wednesday',
'Thursday', 'Friday']
• Dấu ; để cách nhiều lệnh trên dòng
import sys; x = 'foo'; sys.stdout.write(x + '\n')
Cú pháp
• Nhóm nhiều câu lệnh đơn tạo nên một khối lệnh và cũng được gọi là bộ
(suites)
• Các lệnh phức như if, while, def và class cần một dòng header và một
bộ
• Dòng header bắt đầu câu lệnh (bằng một từ khoá tương ứng ví dụ như
if, def, …) và kết thúc bằng dấu hai chấm : theo sau là một suite
def hi(name):
print 'Hello ' + name
print 'Have a good day!'
hi('nghi')
Lệnh print trong Python 2
>
>> print 'hello' hello
>
>> print 'hi'J'there' hi there
>
>> a = 7.0
>
>> b = 2
>
>> name = 'toto'
>
» print '%f/%d = %f %(a, b, a/b) 7.000000/2 =
3.500000
>
>> print 'Hi %s' %name Hi toto
Lệnh input trong Python
> >> name = input("Please enter your name:
") Please enter your name: 'toto'
> >> print 'Hi %s' %name
Hi toto
> >> a = input("a = ")
a = 5
> >> b = input("b = ")
b = 7.2
> >> a+b
12.2
Biến, kiểu cơ bản, phép
toán
• Tên: ký tự bắt đầu phải là alphabet hoặc _
• Không cần khai báo, chỉ gán giá trị (sử dụng dấu =)
• Được tạo ra trong lần đầu gán giá trị
• Phạm vi biến: cục bộ, toàn cục
• Tham khảo đến đối tượng
• Thông tin về kiểu gắn liền với đối tượng
• Kiểu cơ bản: int, float, complex, bool, string
• Các phép toán số học: +, -, *, /, %, **
• Phép toán so sánh: ==, !=, >, >=, <, < =
• Phép toán luận lý: and, or, not
Biến, kiểu cơ bản, phép toán
> >> item_name = 'Computer'
> >> item_qty = 10
> >> item_value = 1000.23
>
>> print item_name, item_qty, item_value Computer 10
1000.23
> >> X = y = z = 1
> >> print X, y, z
1 1 1
> >> x,y,z = 1,2,'abed'
> >> print X, y, z
1
2 abed
>>> X, y = y, X
>>> print X, y
2
1
Biến, kiểu cơ bản, phép toán
>>> varl = "Python"
>>> def funcl():
... varl = "PHP"
... print "In side funcl() varl = ",varl ■ ■ ■
> >> def func2():
... global varl
... print "In side func2() global varl = ",varl
> >> funcl()
In side funcl() varl = PHP
> >> func2()
In side func2() global varl = Python
Biến, kiểu cơ bản, phép toán
> >> X = 7.2
> >> X
7.2
> >> type(x)
> >> X = 'hello'
> >> X
'hello'
> >> type(x)
> >> X = 123456789
> >> X ** 2
15241578750190521
> >> z = 3+2j
> >> t = 2-lj
(5+lj)
Biến, kiểu cơ bản, phép toán
>
>> X = 7
>
>> y = 2
>
>> x%y
1
>
>> x/y
3
>>> 1.0*x/y
3.5
>>> float(x)/y
3.5
>
>> a = 7.2
>
>> int(a)%y
1
>
>> b = True
>
>> type(b)
Biến, kiểu cơ bản, phép toán
> >> s = 'Hello World!'
> >> type(s)
> >> len(s)
12
> >> print s
Hello World!
> >> print s[0]
H
> >> print s[-l] Ị
> >> print s[2:5]
110
> >> print s[2:] llo
World!
> >> print s * 2
Hello World!Hello World!
> >> name = 'Ben ' +
str(10)
> >> print name
Ben 10
Cấu trúc điều khiển
• Cấu trúc rẽ nhánh if
if (cond1):
elif
(cond2): .
..
else:
Cấu trúc điều khiển
• Cấu
while
trúc
. . . (cond):
while
loop_body
. . .
lặp
Cấu trúc điều khiển
• Cấu trúc lặp for
for iter_var in seqence:
. . .
loop_body
. . .
25
Hàm
•
Hàm xây dựng sẵn trong các mô-đun
>
>> import OS
>
>> import random as rand
>
>> from math import sqrt, cos, sin
>
>> os.system('Is -1') total 32
-rw-rw-r-- 1
nghi
nghi
132
Dec
-rw-rw-r-- 1
nghi
nghi
41
Dec
-rw-rw-r-- 1
nghi
nghi
99
Dec
-rw-rw-r-- 1
nghi
nghi
729
Dec
-rw-rw-r-- 1
nghi
nghi
141
Dec
0
>
>> r = rand.random()
>
>> print r
0.617259044825
>
>> X = 64
>
>> sqrt(64)
8.0
20
20
20
20
20
19:37
11:36
11:39
15:28
19:32
for.py
hello.py
hi.py
var.py
while.py
Hàm
• Hàm do lập trình viên định nghĩa
def function_name ([parameters]):
. . .
body_of_the_function
. . .
return ...
• Tham số tùy chọn, có thể đặt giá trị mặc định
• Hàm có thể hoặc không trả về kết quả hoặc
• Đệ quy
Hàm
>>> def hi():
... print 'Hi there!'
> » hi()
Hi there!
> >> def invite(name = 'Toto'):
... print 'Dear', name
___ print 'It will be a great pleasure'
... print 'if you attend the birthday party of Tutu'
■
I ■
> >> invite('Philippe')
Dear Philippe
It will be a great pleasure
if you attend the birthday party of Tutu
Hàm
>>> def addTwo(a,
b): ... return a + b
> >> def divide(a, b):
... return a/bj a%b
•*•
> >> X = 2
»> y = 3
,
.
> >> z = addTwo(x, y)
> >> print z
5
> >> PJ q = divide(x,
y)
> >> print p, q
0 2
Hàm
>>> def gcd(m, n):
.., while (m != n):
—
if (m > n):
...
m = m - n
.. •
else:
. . .
n = n - m
.., return m
>>> def coPrime(a b)
if (gcd(a. :
= 1):
return
b)
else:
print "%d and %d are co-prime" %(a,b)
>>> X, y = 2, 5
>>> coPrime(Xj y) 2
and 5 are co-prime
Hàm
>>> def fact(n):
... if (n == 1):
...
return
1.. else:
.
...
return n*fact(nl)
> >> n = 5
> >> print '%d! = %d' %
(n,fact(n)) 5! = 120
Nội dung
• Giới thiệu
• Lập trình căn bản
• Các kiểu dữ liệu phức
• Lập trình hướng đối tượng
• Vào/ra, ngoại lệ
• Lập trình mạng
• Lập trình Web
• Python-MySQL
• Giao diện GUI
• Vẽ đồ thị
Kiểu String
>
>> a = 'Hello world!'
»> b = "Hello world!"
>
>> a == b True
>
>> a = "Khang's lecture"
>
>> print a
Khang's lecture
>
>> a = "One line.\
nAnother line."
>
>> print a One line.
Another line.
>
>> b = """One line, ...
another line, ... and some...
>
>> print b
One line, another line, and
some...
Kiểu String
>
>> a = "58"
»> type(a)
>
>> b=int(a)
>
>> b
58
>
>> type(b)
>
>> f =
float('1.2e-3')
>
>> f
0.0012
>
>> print f
0.0012
>
>> 0.0012
0.0012
>
>> eval('23-12')
11
Kiểu String
>
>> a = "Part 1"
>
>> b = "and part 2"
>
>> a + ' ' + b 'Part
>
>> s = a * 2
>
>> print s
Part IPart 1
>
>> s[0]
'P'
>
>> s[0:4]
'Part'
>
>> s[5:]
'IPart 1'
>
>> s[-l] '1'
>
>> s[6:-l]
'Part '
1
and part
2'
Kiểu String
> >> print s
Part IPart 1
> >> len(s)
12
> >> 'p' in s
False
> >> 'P' in s
True
> >> 'Part' in s
True
> >> s[0] = 'B'
Traceback (most recent call last):
File ”
TypeError: 'str' object does not support item
assignment
>
>> s = 'B' + s[l:]
>
>> print s
Bart IPart 1
Kiểu String
> >> s = 'a strings with stuff
>
>> s.count('st') 2
> >> s.find('Stu')
15
> >> s.split(' ')
['a', 'string/, 'with', 'stuff']
> >> three = '3'
>
>> three.isdigito True
> >> supper = s.upper()
> >> supper
'A STRING, WITH STUFF'
> >> s.rjust(30)
'
a string, with stuff
> >> "newlines\n\n\n".strip()
'newlines'
Kiểu List: Ordered collection of
objects
>
>> r
[1, 2.0, 3, 5]
>
>> type(r)
>
>> r[l]
2.0
>
>> r[-l]
5
> >> r[l:3] [2.0, 3]
>
>> w = r + [10, 19]
>
>> w
[1, 2.0, 3, 5, 10, 19]
>
>> t = [0.0] * 10
>
>> t
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Kiểu List
> >> r = [1, 2.0, 3, 5]
> >> r[3] = 'word'
> >> r
[1, 2.0, 3, 'word']
> >> r[0] = [9, 8]
> >> r
[[9, 8], 2.0, 3, 'word']
> >> r[0:3] = [1, 2, 5, 6]
> >> r
[1, 2, 5, 6, 'word']
> >> r[l:3] = []
> >> r
[1, 6, 'word']
> >> len(r)
3
> >> 6 in r
True
> >> r.index(6)
1
Kiểu List
>
>> r = [1, 2.0, 3, 5]
>
>> r.append('thing')
>
>> r
[1, 2.0, 3, 5, 'thing']
>
>> r.append(['another', 'list'])
>
>> r
[1, 2.0, 3, 5, 'thing', ['another',
'list']]
>
>> r = [1, 2.0, 3, 5]
>
>> r.extend(['item', 'another'])
>
>> r
[1, 2.0, 3, 5, 'item', 'another']
>
>> k = r.popO
>
>> k
' another'
>
>> r
[1, 2.0, 3, 5, 'item']
Kiểu List
>
>> r = [2, 5, -1, 0, 20]
>
>> r.sort()
>
>> r
[-1, 0, 2, 5, 20]
>
>> w = ['apa', '1', '2',
'1234']
>
>> w.sort()
>
>> w
['1', '1234', '2', 'apa']
>
>> w.reverse()
>
>> w
['apa', '2', '1234', '1']
>
>> V = w[: ]
>
>> V.reverse()
>
>> V
['1', '1234', '2', 'apa']
>
>> w
['apa', '2', '1234', '1']
Kiểu List
> >> s = 'biovitrum'
> >> w = list(s)
> >> w
't\ 'r', 'u\ 'm']
['b\ 'i\ 'o', 'v\ 'i\
> >> w.reverse()
> >> w
['m', 'u\ 'r', 't\ 'i\ 'V', 'o', 'i', 'b']
> >> r = ''.join(w)
> >> r 'murtivoib'
> >> d = '-'.join(w)
> >> d
'm-u-r-t-i-v-o-i-b'
> >> s = 'a few words'
> >> w = s.split()
> >> w
['a', 'few', 'words']
> >> ' I '.join(w) 'a
I few I words'
Kiểu List
> >> a = [1, 3,
2]
> >> b = a
> >> c = b[0:2]
> >> d = b[:]
> >> b.sort()
> >> a
[1, 2, 3]
Kiểu Tuples (as List, except immutable)
> >> t = (1, 3,
2)
> >> t[l]
3
> >> (a, b, c) =
t
> >> a
1
> >> b
3
> >> a, b, c
(1, 3' 2)
> >> a, b = b, a
> >> 3j b
> >> r = list(t)
> >> r
[1, 3, 2]
> >> tuple(r)
(1, 3, 2)
Kiểu Dictionary
An unordered collection of key/value
>> pairs
h = {'key': 12, 'nyckel': 'word'}
>
>
>> h['key']
12
>
>> h.has_key('nyckel')
True
>
>> h['Per'] = 'Kraulis'
>
>> h
{'nyckel': 'word', 'Per': 'Kraulis', 'key': 12}
>
>> {'nyckel': 'word', 'Per': 'Kraulis', 'key': 12}
{'nyckel': 'word', 'key': 12, 'Per': 'Kraulis'}
>» h['Per'] = 'Johansson1
>
>> h
{'nyckel': 'word', 'Per': 'Johansson', 'key': 12}
>
>> h = {'key': 12, 'nyckel': 'word'}
>
>> del h['key']
>
>> h
{'nyckel': 'word'}
Kiểu Dictionary
> >> h = {'key': 12, 'nyckel':
'word'}
> >> 'Per' in h
False
»> h['Per']
Traceback (most recent call last):
File "
KeyError: 'Per'
> >> h.get('Per', 'unknown')
'unknown'
> >> h.get('key', 'unknown')
12
> >> h.keys()
['nyckel, key']
> >> h.values()
['word', 12]
> >> len(h)
Kiểu Dictionary
> >> h = {'key': 12, 'nyckel': 'word'}
> >> g = h.copyO
> >> del h['key']
> >> h
{'nyckel': 'word'}
> >> g
{'nyckel': 'word', 'key': 12}
> >> h['Per'] = 'Johansson'
> >> h
{'nyckel': 'word', 'Per': 'Johansson'}
> >> h.update(g)
> >> h
{'nyckel': 'word', 'key': 12, 'Per':
'Johansson'}
Nội dung
• Giới thiệu
• Lập trình căn bản
• Các kiểu dữ liệu phức
• Lập trình hướng đối tượng
• Vào/ra, ngoại lệ
• Lập trình mạng
• Lập trình Web
• Python-MySQL
• Giao diện GUI
• Vẽ đồ thị
Lập trình hướng đối tượng
•
•
•
•
•
•
•
•
•
•
•
•
Đối tượng (object)
Lớp (class)
Thực thể / thể hiện (instance)
Trạng thái (state)
Phương thức (method)
Truyền thông điệp (message passing)
Trừu tượng hoá (abstraction)
Đóng gói (encapsulation)
Kế thừa (inheritance)
Đa hình (polymorphism)
Tổng quát hoá (generalization)
Cụ thể hoá (specialization)
Lập trình hướng đối tượng
• Định nghĩa lớp
class ClassName:
'Optional class documentation string' class_suite
• class_suite: các thuộc tính, phương thức (hàm)
• Tham số đầu tìên của phương thức thường được đặt tên là self để thỏa:
obj.meth(args) = class.meth(obj, args)
• name: public, _name: protected,name: private
Định nghĩa lớp
>>> class Employee:
'Common base class for all employees'
empCount = 0
def __init__(selfJ name, salary): self.name = name
self.salary = salary Employee.empCount += 1
def displaycount(self):
print "Total Employee %d" % Employee.empCount
def displayEmployee(self):
print "Name: "j self.name, ", Salary: ", self.salary
 








Các ý kiến mới nhất