Tự học Python cho người mới bắt đầu -

Tự học Python cho người mới bắt đầu -

Tự học Python cho người mới bắt đầu -

Tự học Python cho người mới bắt đầu -

Tự học Python cho người mới bắt đầu -
Tự học Python cho người mới bắt đầu -
(028) 35124257 - 0933 427 079

Tự học Python cho người mới bắt đầu

04-01-2021

Python cho người mới bắt đầu

Biến và các kiểu cấu trúc dữ liệu cơ sở.

Định danh (Identifier)

Việc đặt tên được gọi là định danh (Identifier)

Identifier bắt đầu bằng các ký tự A-Z, a-2 hoặc _, tiếp đó là các ký tự chữ, ký tự số 0-

9.

Identifier có phân biệt chữ hoa chữ thường.

Ví dụ: X, x, Spam, spam, spAm, total_of_eggs, Total_Of_Eggs.

Không sử dụng các kí tự dấu câu như @, #, $, %...

 

Một số quy tắc cho việc định danh:

Không sử dụng các kí tự dấu câu như @, #, $, %...

Tên class bắt đầu bằng chữ hoa. Tất cả các identifier bắt đầu bằng chữ thường.

Tên function viết thường, các từ nối với nhau bằng dấu  _

Không sử dụng các từ khóa (keyword) trong python khi đặt tên bất cứ identifier nào

Số không thể bắt đầu bằng tên biến.

 

Biến - Variable

Khái niệm biến

  • Là một đơn vị lưu trữ tạm thời trên bộ nhớ của máy tính, lưu trữ các giá trị có thể được dùng để tính toán xử lý.
  • Biến có thể lưu trữ liệu ở dạng chữ, số…
  • Gán các kiểu dữ liệu khác nhau cho biến, ta tạo ra các kiểu số nguyên, số thập phân, chuỗi…
  • Cần phải khai báo biến khi sử dụng
  • Syntax: variable_name = <value>
  • Cùng một lúc ta có thể đặt nhiều biến và gán nhiều giá trị:

Cùng một lúc ta có thể đặt nhiều biến và gán nhiều giá trị.

Cú pháp: biến_1, biến_2, biến_3,... = <giá_trị_1>, <giá_trị_2>, <giá_trị_3>,...

Ví dụ:

 

Các kiểu dữ liệu cơ bản

  • Number - Kiểu số
  • Boolean - Kiểu True/False (Thường sử dụng trong cấu trúc điều kiện)
  • String - Kiểu chuỗi

Các kiểu dữ liệu danh sách

  • List, Tuple, Dictionary

Number - kiểu số

  • int

Ví dụ: Hệ cơ số 10 (9,-25), hệ cơ số 8 (0o80, -0o490), hệ cơ số 16 (0x50, -0XCAFE26). Trong đó: Tiền tố và kí tự trong hệ thập lục phân không phân biệt chữ hoa và chữ thường.

  • long (không tồn tại ở python 3)

Ví dụ: 51924361L, -0x19323L, -0o52318172735L

Thêm hậu tố L để biểu diễn số nguyên kiểu long

  • float

Ví dụ: 1.2, -12.9, 21.3+e18, -32.54e100

  • complex (số phức)

Ví dụ: 3 + 4j, 3.14j, 3e + 26j, 9.322e-36j

 

  • Trong đó:

Complex number là một cặp có thứ tự là các số thực (real floating-point) ký hiệu x+yj,

với x là real và y imag.

Boolean

  • Kiểu luận lý
  • Chỉ có 2 giá trị: True/False

Ví dụ:

 

String - Chuỗi

  • Là một chuỗi các ký tự được đặt trong nháy kép “ ” hoặc nháy đơn ’ ’
  • Khai báo và khởi tạo chuỗi:

            tên_chuỗi = <giá_trị>

  • Ví dụ:

 

Các phương thức

  • Tạo chuỗi con: sử dụng [index], [from:to], [from:]

Với index (chỉ mục) bắt đầu từ 0. Chiều dài chuỗi thì -1 (do bắt đầu từ 0)

 

Ví dụ:

 

 

  • Nối chuỗi: sử dụng toán tử +

 

 

  • Lặp chuỗi: sử dụng toán tử *

 

<9>

 

  • Chiều dài chuỗi: sử dụng len()

 

 

Định dạng chuỗi

 

<11>

 

 

<   :  left-align text in the field

^   :  center text in the field

>   :  right-align text in the field

s – strings

d – decimal integers (base-10)

f – floating point display

c – character

b – binary

o – octal

x – hexadecimal with lowercase letters after 9

X – hexadecimal with uppercase letters after 9

e – exponent notation

Tham khảo string.format(): https://www.geeksforgeeks.org/python-format-function/

 

 


Module

Module (mô-đun) là một file chứa những câu lệnh Python và các định nghĩa. Hay đơn giản hơn module là một file python bình thường, thậm chí đó là file python trống nó vẫn là một module. Một file chứa code Python, ví dụ <meo_module.py> được gọi là module và tên của module sẽ là <meo_module> .

Module của Python có thể không nhất thiết phải là file Python mà có thể là những file được viết bởi những ngôn ngữ lập trình khác như C, C++,… Ví dụ như (Java – Jython). Những module như vậy được gọi là extension module, và thường được sử dụng cho việc lưu các external library. Module được sử dụng khi muốn chia chương trình lớn thành những file nhỏ hơn để, tái sử dụng code, dễ quản lý và tổ chức.

 

Lưu ý khi đặt tên module, ngoài việc phải tuân thủ các quy tắc đặt tên file. Ta còn phải chú ý, khi goi

 

Ví dụ:

 

 

Import module

Có thể nhập các định nghĩa từ module này vào module khác (file này vào trong file khác) hoặc vào trình thông dịch trong Python. Chúng ta sử dụng từ khóa import để thực hiện việc này. Đây là câu lệnh cơ bản nhất khi làm việc với các module Python.

 

Ví dụ:

Đầu tiên ta có một module (file python) như thế này.

 

Và một module (file python) <meo_module_2.py>. Chạy module này.

 

Import giúp chúng ta gọi một module khác. Ví dụ trên là gọi một module chung một thư mục. Để gọi cụ thể một function (hàm) trong module đó ta dùng toán tử “.”. Với cú pháp:

 

<Tên_module>.<Tên_function>(Parameter_list)

 

Ta có thể import nhiều module một lúc trên một dòng lệnh

<18>

 

Tuy nhiên, điều này không được khuyến khích vì không rõ ràng ta có thể import trên nhiều dòng lệnh.

<19>

Sửa tên module

Chúng ta đã đổi tên module <meo_module> là <meo>, điều này có thể giúp tiết kiệm thời gian trong một số trường hợp. Chú ý, việc đổi tên này chỉ áp dụng trong phạm vi lệnh, chứ không thực sự đổi tên module trong Lib. Khi đã đổi tên, phải gõ đúng tên module, <meo_module> lúc này không được công nhận trong phạm vi lệnh nữa, mà bạn phải dùng meo mới đúng.

 

<20>

 

Lệnh from…import trong Python

Có thể nhập một function cụ thể từ module mà không cần nhập toàn bộ module. Khi dung theo cách này, chúng ta không cần dung toán tử “.”.Ví dụ:

<21>

 

 

Nhập nhiều function từ một module. Chúng ta dung “,”. Ví dụ:

 

 

Ở hai trường hợp trên, ta chỉ import một hoặc hai thứ trong module math thôi. Thế nếu ta muốn import hết tất cả thì sao?

Giả sử module a có một tỷ function thì việc sử dụng dấu phẩy (,) gần như là bất khả thi. Vậy thì ta sử dụng import *.

 

Chúng ta nhập tất cả các định nghĩa từ module math nên tất cả tên đều có thể nhìn thấy trong phạm vi này, ngoại trừ những tên bắt đầu bằng dấu gạch dưới _. Nhập mọi thứ với dấu hoa thị * không phải là một thói quen lập trình tốt. Vì nó có thể dẫn đến những định nghĩa bị trùng lặp cho cùng một định danh và khiến cho việc đọc code trở nên khó khăn hơn. Đó là lý do visual trả về khuyến cáo không hợp chuẩn dù kết quả là đúng. Lưu ý: Ở Python 2.X, câu lệnh from module import * có thể sử dụng ở trong một function, tuy nhiên điều này không được xảy ra ở Python 3.X.

Về kết quả lệnh import <module> và from <module> import * giống nhau ở một điểm là import tất cả mọi thứ trong module. Nhưng khác nhau về cách thực hiện.

Khi dùng import <module>. Về bản chất, là ta cho chạy module đó trong file yêu cầu import và tạo một module object lưu dưới một biến với tên là biến đó. Module object này có các attribute method lần lượt là các biến và hàm. Vì lý do đó nên khi gọi một function bằng cách này ta phải dùng cú pháp: <Tên_module>.<Tên_function>(Parameter_list)

 

Khi dùng from math import * giúp chúng ta không cần phải sử dụng thông qua module object. Vì lý do đó nên khi gọi một function bằng cách này ta có thể gọi trực tiếp function đó. Mà không cần dùng cú pháp: <Tên_module>.   

 

Một trường hợp hi hữu là ta có thể đặt tên module trùng với module của python. Khi đó python sẽ ưu tiên module của chúng ta. Nhưng vấn đề xảy ra khi ta muốn gọi chính xác module (của python) đó mà nó lại gọi module của chúng ta. Danh sách module python. Ví dụ:

 

 

Khi ta import module của python.

 

Khi ta import một module do ta tạo có tên và function trùng với module của python bên trên.

 

 

 

 

 

Để hiểu được trường hợp này ta phải hiểu rõ về đường dẫn tìm kiếm module Python.

Khi nhập module, Python sẽ tìm một vài nơi theo thứ tự:

Thư mục hiện tại.

PYTHONPATH (một biến môi trường với danh sách thư mục).

Thư mục mặc định có vị trí phụ thuộc vào chọn lựa trong quá trình cài đặt.

 

Ở đây module base64 được tạo ra và để trùng thư mục với file gọi module nên được ưu tiên. Còn module base64 của python thì nằm ở PYTHONPATH. Nên không được gọi.

 

File trong Python

Trong Python, file có 2 loại:

Text File

  • Được cấu trúc như một dãy các dòng, mỗi dòng bao gồm một dãy các kí tự và một dòng tối thiểu là một kí tự dù cho dòng đó là dòng trống.

Binary File

  • Các file này chỉ có thể được xử lí bởi một ứng dụng biết và có thể hiểu được cấu trúc của file này. Phạm vi của bài viết này là tìm hiểu về text file

 

Ở đây ta dùng hàm open để mở file. Chúng ta chú ý đến 2 tham số chính: file và mode.

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

Đầu tiên muốn thao tác file ta phải mở file. Dĩ nhiên, muốn mở thì ta phải có file đó sẵn. Có hai cách mở file

 

 

 

  1. Mở file cùng thư mục với file hiện tại
  2. Mở file ở thư mục khác

Khi làm việc với các tệp ở chế độ văn bản, nên chỉ định loại mã hóa. Ví dụ:

Khi không dùng:

 

 

 

Các mode mở file.

 

MODE

MÔ TẢ

‘r’

Chế độ chỉ được phép đọc.

‘r+’

Chế độ được phép đọc và ghi

‘rb’

Mở file chế độ đọc cho định dạng nhị phân. Con trỏ tại phần bắt đầu của file

‘rb+’
‘r+b’

Mở file để đọc và ghi trong định dạng nhị phân. Con trỏ tại phần bắt đầu của file

‘w’

Mở file để ghi. Nếu file không tồn tại thì sẽ tạo mới file và ghi nội dung, nếu file đã tồn tại thì sẽ bị cắt bớt (truncate) và ghi đè lên nội dung cũ

‘w+’

Mở file để đọc và ghi. Nếu file không tồn tại thì sẽ tạo mới file và ghi nội dung, nếu file đã tồn tại thì sẽ bị cắt bớt (truncate) và ghi đè lên nội dung cũ

‘wb’

Mở file để ghi cho dạng nhị phân. Nếu file không tồn tại thì sẽ tạo mới file và ghi nội dung, nếu file đã tồn tại thì sẽ bị cắt bớt (truncate) và ghi đè lên nội dung cũ

‘wb+’
‘w+b’

Mở file để đọc và ghi cho dạng nhị phân. Nếu file không tồn tại thì sẽ tạo mới file và ghi nội dung, nếu file đã tồn tại thì sẽ bị cắt bớt (truncate) và ghi đè lên nội dung cũ

‘a’

Mở file chế độ ghi tiếp. Nếu file đã tồn tại rồi thì nó sẽ ghi tiếp nội dung vào cuối file, nếu file không tồn tại thì tạo một file mới và ghi nội dung vào đó.

‘a+’

Mở file chế độ đọc và ghi tiếp. Nếu file đã tồn tại rồi thì nó sẽ ghi tiếp nội dung vào cuối file, nếu file không tồn tại thì tạo một file mới và ghi nội dung vào đó.

‘ab’,

Mở file chế độ ghi tiếp ở dạng nhị phân. Nếu file đã tồn tại rồi thì nó sẽ ghi tiếp nội dung vào cuối file, nếu file không tồn tại thì tạo một file mới và ghi nội dung vào đó.

‘ab+’
‘a+b

Mở file chế độ đọc và ghi tiếp ở dạng nhị phân. Nếu file đã tồn tại rồi thì nó sẽ ghi tiếp nội dung vào cuối file, nếu file không tồn tại thì tạo một file mới và ghi nội dung vào đó.

‘x’

Mở file chế độ ghi. Tạo file độc quyền mới (exclusive creation) và ghi nội dung, nếu file đã tồn tại thì chương trình sẽ báo lỗi

‘x+’

Mở file chế độ đọc và ghi. Tạo file độc quyền mới (exclusive creation) và ghi nội dung, nếu file đã tồn tại thì chương trình sẽ báo lỗi

‘xb’

Mở file chế độ ghi dạng nhị phân. Tạo file độc quyền mới và ghi nội dung, nếu file đã tồn tại thì chương trình sẽ báo lỗi

‘xb+’
‘x+b’

Mở file chế độ đọc và ghi dạng nhị phân. Tạo file độc quyền mới và ghi nội dung, nếu file đã tồn tại thì chương trình sẽ báo lỗi

‘b’

Mở file ở chế độ nhị phân

‘t’

Mở file ở chế độ văn bản (mặc định

 

 

Đóng File trong Python

Sau khi thực hiện xong các thao tác với file thì bạn cần đóng nó lại.

Đóng file để đảm bảo quy chế đóng mở và giải phóng bộ nhớ cho chương trình nên điều này là cần thiết. Khi một file được mở, hệ điều hành sẽ khóa file đó lại, không cho các chương trình khác có thể xử lí trên file đó nữa nhằm đảm bảo tính nhất quán của dữ liệu.

Việc đóng file được xây dựng trong Python bằng hàm close().

Dẫu vậy, nếu chương trình kết thúc. Tất cả các file đang mở cũng sẽ được đóng lại. Tuy nhiên, sử dụng phương thức close() để đóng một file vẫn tốt hơn.

 

 

Đọc File trong Python

Tương tự ghi file, để đọc một file ta cần mở file bằng cú pháp để đọc.

Dùng phương thức read

Sử dụng phương thức read(size) để lấy về dữ liệu có kích thước bằng size. Nếu để trống tham số trống hoặc số âm thì nó sẽ đọc hết file đồng thời đưa con trỏ file tới cuối file hoặc nếu file quá lớn thì nó sẽ đọc đến khi giới hạn của bộ nhớ cho phép.

Cú pháp: <File>.read(size)

Với size = -1

 

 

 

Dùng readline(). Phương thức này cho phép đọc từng dòng trong file:

Cú pháp:

<File>.readline()

 

Ghi File trong Python

Phương thức write

Cú pháp:

<File>.write(text)

Dùng mode ‘a’ để tránh mất nội dung ban đầu. Nếu muốn ghi đè thì dùng mode w hoặc tham khảo bảng mode bên trên.

 

 

 

Một số phương thức làm việc với File trong Python

 

PHƯƠNG THỨC

MÔ TẢ

close()

Đóng một file đang mở. Nó không thực thi được nếu tập tin đã bị đóng.

fileno()

Trả về một số nguyên mô tả file (file descriptor).

flush()

Xóa sạch bộ nhớ đệm của luồng file.

isatty()

Trả về TRUE nếu file được kết nối với một thiết bị đầu cuối.

read(n)

Đọc n kí tự trong file.

readable()

Trả về TRUE nếu file có thể đọc được.

readline(n=-1)

Đọc và trả về một dòng từ file. Đọc nhiều nhất n byte/ký tự nếu được chỉ định.

readlines(n=-1)

Đọc và trả về một danh sách các dòng từ file. Đọc nhiều nhất n byte/ký tự nếu được chỉ định.

seek(offset,from=SEEK_SET)

Thay đổi vị trí hiện tại bên trong file.

seekable()

Trả về TRUE nếu luồng hỗ trợ truy cập ngẫu nhiên.

tell()

Trả về vị trí hiện tại bên trong file.

truncate(size=None)

Cắt gọn kích cỡ file thành kích cỡ tham số size.

writable()

Trả về TRUE nếu file có thể ghi được.

write(s)

Ghi s kí tự vào trong file và trả về.

writelines(lines)

Ghi một danh sách các dòng và file.

 

 

Kiểm soát con trỏ file

Con trỏ file rất quan trọng, nó dẫn đường cho việc đọc file, viết file.

Phương thức seek

Cú pháp:

<File>.seek(offset)

Công dụng: Phương thức này giúp ta di chuyển con trỏ từ vị trí đầu file qua offset kí tự. Parameter offset phải là một số tự nhiên. Nhờ phương thức này, ta có thể ghi nội dung từ bất cứ đâu trong file. Và từ đó ta có thể đọc lại file sau khi ta đưa con trỏ file xuống cuối file.

 

 

 

 

 


FORM ĐĂNG KÝ MUA HÀNG
Đặt hàng
icon-cart
0