Lessons IV : Cấu trúc và kỹ thuật làm việc với dữ liệu trong Python

B.Tìm hiu v kiến trúc lp trình Python

 

I. Cấu trúc và kỹ thuật làm việc với dữ liệu trong Python:

          Do Python không có một cú pháp rõ ràng để định nghĩa biến mới, nên chỉ có thể khai báo một biến bằng cách gán giá trị cụ thể cho nó. 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 nó.Các ví dụ ở đây thì >>> là dấu nhắc lệnh của trình thông dịch.

Dưới đây là hệ thống kiểu dữ liệu chuẩn:

 

–         Kiểu None :  Kiểu này chỉ có 1 giá trị , sử dụng để diện tả sự vắng mặt của giá trị trong nhiều trường hợp , ví dụ nó được trả về từ hàm mà đã xác định trước sẽ không trả về gì. Giá trị thực của nó là false.

–         Kiểu NotImplemented : Kiểu này chỉ có 1 giá trị , chỉ có 1 đối tượng có giá trị này .Đối tượng được truy cập thông qua tên được xây dựng sẵn NotImplemented.  Các phương thức số học và so sánh có thể trả về kiểu giá trị này nếu chúng chưa cài đặt hành động cho toán tử được cung cấp.Giá trị thực của nó là true.

–         Kiểu Ellipsis : Kiu này cũng có giá tr 1 đơn , cũng chí có 1 đi tượng có giá tr này . Đi tượng được truy cp thông qua tên được xây dng sn Ellipsis . Nó được s dng đ ch ra s hin din ca cú pháp “….” . Giá tr thc ca nó là true.

–         Kiểu Numbers: Được tạo ra bởi các kí tự số và trả về kết quả bởi phép toán số học hoặc các hàm số học. Đối tượng numbers là bất biến, giá trị của nó không  thay đổi kể từ khi được tạo ra. Có những giới hạn về giá trịcủa số trong máy tính.

            Python phân biệt giữa số nguyên, số dấu phẩy động, và số phức:

                Integers

Có 3 loại số nguyên:

o       Plain integers – Biểu diễn các số nguyên trong khoảng -2147483648 đến 2147483647. Với các thao tác dịch và mặt nạ , kiểu số này được giả định là số bù 2 ,32 bit hoặc nhiều hơn.

o       Long integer –  Biểu diễn một khoảng không giới hạn của số nguyên.

o       Boolean –  Biểu diễn giá trị true hay false. Đối tượng miêu tả 2 giá trị này gọi là đối tượng logic. Kiểu Booleans là một kiểu con của kiểu Plain Integers, và giá trị của nó giống như 0 và 1

 

Kiểu số thực floating point numbers, và kiểu số phức complex numbers Để khai báo 1 số thưc chỉ việc gán giá trị của biến cho1 số thực, cũng như vậy đối với số phức:

>>> X = 1.0

>>>Y = 2+3j

Một số phức gồm 2 phần thực và ảo, là 2 số dấu phẩy động. Nó có thểđược lấy thông qua thuộc tính z.real và z.image.

 

–     Kiểu chuỗi String , giá trị của string được đặt trong cặp dấu ‘          hoặc “.

>>>a = ‘abcdefg’

>>>b = “12345678”

->  a[0] = ‘a   

                 b[1] = ‘2’

–         Kiểu từ điển Dictionary  – định nghĩa một quan hệ 1-1 giữa khoá và giá trị , không thể có khoá trùng nhau trong từ điển.

Ví dụ khai báo một từ điển :

>>> d = {“server”:”mpilgrim”, “database”:”master”}

>>> d

{‘server’: ‘mpilgrim’, ‘database’: ‘master’}

>>> d[“server”]

‘mpilgrim’

>>> d[“database”]

‘master’

>>> d[“mpilgrim”]

Traceback (innermost last):

File “<interactive input>”, line 1, in ?

KeyError: mpilgrim

 

–         Kiểu danh sách List – làm việc như là 1 mảng các đối tượng. Sau đây là các phương thức của List:

append(x): Thêm một thành phần vào cuối của danh sách, tương đương với: a[len(a):] = [x].

extend(L): Mở rộng danh sách bằng cách thêm tất cả các thành phần trong         danh sách đã nhận. Tương đương với a[len(a):] = L.

insert(i,x): Chèn một phần tử vào một ví trí đã định. Đối số đầu tiên i là chỉ sổ của phần tử trước chỗ sẽ chèn, vì thế a.insert(0, x) chèn tại vị trí đầu         của danh sách, và a.insert( len(a), x) tương đương với a.append(x).

remove(x): Loại bỏ phần tử đầu tiên trong danh sách mà có giá trị là x.         Nếu không có phần tử như vậy thì báo lỗi.

pop([i]): Loại bỏ phần tử tại vị trí i trong danh sách, và trả về nó. Nếu không xác định chỉ số, a.pop( ) sẽ loại bỏ và trả về phần tử cuối cùng trong danh sách.

index(x): Trả về chỉ số của phần tử có giá trị x đầu tiên danh sách. Nếu không có phần tử như vậy sẽ xảy ra lỗi.

count(x): Trả về số lần x xuất hiện trong danh sách.

sort( ): Sắp xếp các thành phần của danh sách.

        reverse( ): Đảo ngược các phần tử trong danh sách.

 

Ta xem xét các ví d sau:

   

 

Khai báo mt List như sau

>>> li = [‘a’, ‘b’, ‘mpilgrim’, ‘z’, ‘example’]

li[0] = ‘a’

li[1] = ‘b’

li[3]= ‘z’

Thay đi ni dung danh sách

>>> li

[‘a’, ‘b’, ‘mpilgrim’, ‘z’, ‘example’]

>>> li.append(“new”)

>>> li

[‘a’, ‘b’, ‘mpilgrim’, ‘z’, ‘example’, ‘new’]

>>> li.insert(2, “new”)

>>> li

[‘a’, ‘b’, ‘new’, ‘mpilgrim’, ‘z’, ‘example’, ‘new’]

>>> li.extend([“two”, “elements”])

>>> li

[‘a’, ‘b’, ‘new’, ‘mpilgrim’, ‘z’, ‘example’, ‘new’, ‘two’, ‘elements’]

Tìm kiếm trong List

>>> li

[‘a’, ‘b’, ‘new’, ‘mpilgrim’, ‘z’, ‘example’, ‘new’, ‘two’, ‘elements’]

>>> li.index(“example”)

5

>>> li.index(“new”)

2

>>> li.index(“c”)

Traceback (innermost last):

File “<interactive input>”, line 1, in ?

ValueError: list.index(x): x not in list

>>> “c” in li

False

               

                Xoá phn t trong list

>>> li

[‘a’, ‘b’, ‘new’, ‘mpilgrim’, ‘z’, ‘example’, ‘new’, ‘two’, ‘elements’]

>>> li.remove(“z”)

>>> li

[‘a’, ‘b’, ‘new’, ‘mpilgrim’, ‘example’, ‘new’, ‘two’, ‘elements’]

>>> li.remove(“new”)

>>> li

[‘a’, ‘b’, ‘mpilgrim’, ‘example’, ‘new’, ‘two’, ‘elements’]

>>> li.remove(“c”)

Traceback (innermost last):

File “<interactive input>”, line 1, in ?

ValueError: list.remove(x): x not in list

>>> li.pop()

‘elements’

>>> li

[‘a’, ‘b’, ‘mpilgrim’, ‘example’, ‘new’, ‘two’]

                S dng các toán t

>>> li = [‘a’, ‘b’, ‘mpilgrim’]

>>> li = li + [‘example’, ‘new’]

>>> li

[‘a’, ‘b’, ‘mpilgrim’, ‘example’, ‘new’]

>>> li += [‘two’]

>>> li

[‘a’, ‘b’, ‘mpilgrim’, ‘example’, ‘new’, ‘two’]

>>> li = [1, 2] * 3

>>> li

[1, 2, 1, 2, 1, 2]

–  Kiểu Tuple. Đây là mộtdanh sách không thay đổi

>>> t = (“a”, “b”, “mpilgrim”, “z”, “example”)

>>> t

(‘a’, ‘b’, ‘mpilgrim’, ‘z’, ‘example’)

>>> t[0]

‘a’

>>> t[−1]

‘example’

>>> t[1:3]

(‘b’, ‘mpilgrim’)

Các phương thức insert,index,append,extend như với list không thể thực hiện được.Tuy nhiên in thì thực hiện được. Tuple nhanh hơn list và được sử dụng khi các phần tửcủa nó là cố định không thay đổi, vídụ như key trong kiểu từ điển.

–  Kiểu sets: Một set là một tập không có thứ tự và không có các phần   tử trùng lặp. Công dụng cơ bản là để kiểm tra thành viên, và loại trừ     các mục lặp. Đối tượng set cũng hỗ trợ các phép toán như: hợp, giao,        hiệu, và hiệu đối xứng. Dưới đây là một ví dụ:

 

      >>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']
>>> fruit = set(basket) # create a set without duplicates
>>> fruit
set(['orange', 'pear', 'apple', 'banana'])
>>> 'orange' in fruit # fast membership testing
True
>>> 'crabgrass' in fruit
False

>>> # Demonstrate set operations on unique letters from two words
...
>>> 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', 'b', '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'])

 

 

  1. Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: