1. Kiểu String
1.1. Escape Sequence
1.1.1. \a : phát ra tiếng bíp
1.1.2. \b : backscape
1.1.3. \n: newline
1.1.4. \t: tab
1.1.5. \': thêm '
1.1.6. \": thêm "
1.1.7. \\: thêm\
1.1.8. Chuổi trần
1.1.8.1. Cú pháp: r'<nội dung>'
1.2. Note trong Py
1.2.1. Dùng dấu #
1.2.2. Dùng cặp dấu '' hoặc "" (Docstring)
1.3. Ép kiểu
1.3.1. int() : thành interger
1.3.2. float() : thành float
1.3.3. str() : thành string
1.4. Toán tử String
1.4.1. Công chuỗi: +
1.4.2. Nhân chuỗi: *
1.4.3. Indexing và cắt chuỗi
1.4.3.1. Indexing
1.4.3.1.1. Chuỗi bắt đầu từ vị trí 0 - len(chuỗi)
1.4.3.1.2. Chuỗi cũng có thể bắt đầu từ ( - len(chuỗi) ) đến -1
1.4.3.2. Cắt chuỗi
1.4.3.2.1. <chuỗi>[vị trí]
1.4.3.2.2. <chuỗi>[vị trí bắt đầu : vị trí dừng : (bước) ]
1.4.4. Toán tử %
1.4.4.1. Cú pháp: <chuỗi %s> %( giá trị thử 1, giá trị thứ 2,..., giá trị thứ n-1, giá trị thứ n )
1.4.4.2. %s : giá trị phương thức __str__
1.4.4.3. %r : giá trị phương thức __repr__
1.4.4.4. %d : giá trị của môt số - Nếu là số thực thì chỉ lấy phần nguyên (chuyển sang số nguyên)
1.4.4.5. %<số chữ số thập phân>f : giá trị của số thực - Nếu là số sẽ chuyển sang số thực
1.4.5. Định dạng bằng chuỗi f (f-string)
1.4.5.1. Cú pháp: f'<giá trị trong chuỗi { giá trị đã được khai báo }'
1.4.5.1.1. VD
1.4.6. Định dạng bằng phương thức format
1.4.6.1. Cú pháp: '<giá trị của chuỗi {}>'.format()
1.4.6.1.1. Vd : 'a: {}, b:{}, c:{} '.format(1,2,3)
1.4.6.2. Căng lề bằng format
1.4.6.2.1. Căn lề trái: {:(c)<n}
1.4.6.2.2. Căn lề phải: {:(c)>n}
1.4.6.2.3. Căn lề giữa: {:(c)^n}
1.4.6.2.4. Trong đó: c là kí tự muốn thay thế, n là số kí tự
1.5. Các phương thức biến đổi
1.5.1. <chuỗi>.capitalize() : Kí tự đầu tiên viết hoa và viết thường các kí tự còn lại
1.5.2. <>.upper() : Viết hoa all
1.5.3. <>.lower() : Viết thường all
1.5.4. <>.swapcase() : Hoa => thường và ngược lại
1.5.5. <>.title() : Biến chuỗi thành tiêu đề
1.6. Các phương thức định dạng
1.6.1. <>.center(width, [fillchar])
1.6.2. <>.rjust(width, [fillchar])
1.6.3. <>.ljust(width, [fillchar])
1.7. Các phương thức xử lý
1.7.1. <>.encode(encoding='utf-8', errors='strict')
1.7.2. <>.join(<iterable>) .
1.7.2.1. iterable buộc là class str
1.7.3. <>.replace(old, new, [count])
1.7.3.1. Nếu old ko có trong chuỗi hoặc [count] = 0 thì chuỗi đã replace == chuỗi cũ
1.7.4. <>.strip([char])
1.7.4.1. Trả về chuỗi mà đầu và đuôi đã bị cắt bỏ [char].
1.7.4.2. Mặc định [char] là khoảng trắng nếu [char] bị bỏ trống
1.7.4.3. Một số escape sequence ngoại lệ như \a sẽ được encode utf-8
1.7.4.4. <>.rstrip() : cắt từ trái và <>.lstrip : cắt từ phải
1.7.5. <>.split(sep=None, maxsplit = -1 ) và <>.rsplit(sep=None, maxsplit = -1 )
1.7.5.1. Nếu sep = None thì dùng kí tự khoảng trắng
1.7.5.2. Nếu maxsplit mặc định == -1 thì sẽ ko bị giới hạn việc tách, Py sẽ giới hạn việc tách thông qua maxsplit
1.7.6. <>.partition(sep) và <>.rpartition(sep)
1.7.6.1. Tách chuỗi thành 1 tuple gồm 3 phần tử
1.7.6.2. ('<Giá trị trước sep>', '<sep>', '<Giá trị sau sep>')
1.7.6.3. Nếu sep ko đc tìm thấy thì sẽ tạo ra 1 tuple gồm giá trị đầu là <chuỗi> và 2 giá trị phía sau (phía trước) trống
1.8. Phương thức tiện ích
1.8.1. <>.count(sub, [start, [end]]) : đếm số kí tự sub trong chuỗi.
1.8.2. <>.startswith(prefix, [start[end]]) : đưa ra giá trị boolean. Nếu chuỗi đó bắt đầu bằng prefix thì True, ngược lại là False
1.8.3. <>.endwith(prefix, [start[end]]) : đưa ra giá trị boolean. Nếu chuỗi đó kết thúc bằng prefix thì True, ngược lại là False
1.8.4. <>.find(sub, [start,[end]]): tìm kí tự sub trong chuỗi ở đâu. Nếu ko có trong chuỗi thì kết quả == -1
1.8.5. <>.rfind(sub, [start,[end]]): tương tự <>.find()
1.8.6. <>.index() và <>.rindex(): tương tự <>.find() nhưng sẽ có lỗi ValueError nếu sub ko đc tìm thấy
1.9. Phương thức xác thực
1.9.1. <>.isupper()
1.9.2. <>.islower()
1.9.3. <>.istitle()
1.9.4. <>.isdigit()
1.9.5. <>.isspace()
2. Kiểu sô
3. Kiểu List
3.1. List trong Py
3.1.1. Là một container đc sử dụng nhiều.
3.2. Yếu tố:
3.2.1. Giới hạng bởi cặp ngoặc [ ]
3.2.2. Giữa các phần tử cách nhau bởi dấu phẩy
3.2.3. Có khả năng chứa mọi giá trị, đối tượng và bao gồm chính nó.
3.3. Khởi tạo list
3.3.1. Sử dụng dấu ngoặc [ ] đặt bên trong
3.3.2. Sử dụng List Comprehension
3.3.2.1. Cú pháp: [Comprehension]
3.3.2.2. Vd: a = [ s for s in range(n) ]
3.3.2.3. Trong đó: s là biến, n là số phần tử
3.3.3. Sử dụng constructor List
3.3.3.1. Cú pháp: list( iterable )
3.4. Một số toán tử
3.4.1. Toán tử +
3.4.2. Toán tử *
3.4.3. Toán tử in
3.4.3.1. Nếu một phần tử có trong list thì kết quả là True và ngược lại.
3.5. Indexing và cắt List
3.5.1. Indexing và cắt List tương tự Indexing và cắt String
3.6. Thay đổi nội dung List
3.6.1. Ta có thể thay đổi nội dung trong list.
3.7. Phương thức tiện ích
3.7.1. <>.count(sub, [start, [end]]) : đếm số kí tự sub trong list.
3.7.2. <>.index(sub, [start,[end]]) : Tìm kí tự sub ở đâu
3.7.3. <>.copy() : Copy list như List[:]
3.7.4. <>.clear() : clear list
3.8. Các phương thức cập nhật
3.8.1. <>.append(x) : thêm phần tử x và list
3.8.2. <>.extend(x) : thêm từng phần tử x và list
3.8.3. <>.insert( i , x ) : thêm phần tử x và vị trí i
3.8.4. <>.pop([ i ]) : bỏ đi phần tử i trong list, nếu ko có vị trị i thì mặc định sẽ bỏ giá trị cuối
3.8.5. <>.remove( x ) : Bỏ đi giá trị đầu tiên trong list có giá trị x. Nếu x ko có thì sẽ báo lỗi.
3.9. Các phương thức xử lí
3.9.1. <>.reverse : đảo ngược các phần tử
3.9.2. <>.sort( key=None, reverse=False )
3.9.2.1. Sắp xếp các phần tử từ bé đến lớn
3.9.2.2. Sắp xếp các phần tử từ lớn đến bé nếu reverse=True
3.9.2.3. Không thể so sánh chuỗi với số
4. Kiểu Tuple
4.1. Đặc điểm
4.1.1. Sử dụng cặp ngoặc tròn ( ), phân cách nhau bởi dấu phẩy, có thể chứa mọi giá trị
4.1.2. Tốc độ truy xuất data nhanh hơn list, dung lượng chím bộ nhớ nhỏ hơn list, bảo vệ dữ liệu người dùng tốt hơn.
4.1.3. Có thể dùng làm key cho Dictionary
5. Kiểu Set
6. Kiểu Dictionary
7. Kiểu Boolean
7.1. Đúng thì True
7.2. Sai thì False
8. Câí trúc rẽ nhánh
8.1. Các khối lệnh
8.1.1. Gõ dấu < : > để tạo một khối lệnh
8.1.2. Các khối lệnh có thụt đầu dòng khoảng 1 tab hoặc 4 dấu cách
8.1.3. 1 khối lệnh có thể chứa nhiều dòng và nhiều khối lệnh khác
8.2. If < nội dung >:
8.2.1. Nếu...thì
8.2.2. If <điều kiên>:
8.2.2.1. Nếu... thì...
8.2.3. If <đk>:...else:
8.2.3.1. Nếu... thì...còn không phải thì
8.2.4. If<đk>:...elif<đk>:...(elif + 1:...elif n-1:...elif n)[Nhiều lần elif]
8.2.4.1. Nếu...thì...còn ko thì...
8.2.4.2. Có thể có nhiều điều kiện
8.3. Pass: Dùng để đánh dấu chổ lập trình
8.4. Dùng If như một phép gán
8.4.1. VD: bang_nhau = True if a == b else False
9. Vòng lập
9.1. While
9.1.1. Là chạy phần mềm cho đến khi nào giá trị sai (FALSE)
9.1.2. While ... : <>
9.1.3. While/else
9.1.3.1. else như kết luận của vòng lập while đc dùng để tổng hợp kết quả
9.1.3.2. block else sẽ xảy ra nếu vòng lập chạy bình thường (ko bị dừng bất thường)
9.2. For
9.2.1. range( begin , end , step )
9.2.1.1. Chạy từ khi nào đến khi nào
9.2.2. For ... : <>
9.2.3. vd: For i in range (0,10,2) #0,2,4,6,8
9.2.4. For/else
9.2.4.1. else như kết luận của vòng lập for... đc dùng để tổng hợp kết quả
9.2.4.2. block else sẽ xảy ra nếu vòng lập chạy bình thường (ko bị dừng bất thường)
9.3. Các câu lệnh khác
9.3.1. break
9.3.1.1. Dùng để dừng vòng lập
9.3.2. continue
9.3.2.1. Dùng để nhảy sớm đến các bước tiếp theo
10. Các toán tử cơ bản
10.1. Toán tử số học cơ bản
10.1.1. Cộng ( + )
10.1.2. Trừ ( - )
10.1.3. Nhân ( * )
10.1.4. Chia ( / )
10.1.5. Chia lây phần nguyên ( // ) ( div)
10.1.6. Chia lây phần dư ( % ) ( mod )
10.1.7. Lũy thừa ( ** )
10.2. Toán tử gán
10.2.1. Gán ( = )
10.2.2. Cộng và gán ( += )
10.2.3. Trừ và gán ( -= )
10.2.4. Nhân và gán ( *= )
10.2.5. Chia và gán ( /= )
10.2.6. Chia và gán (lấy nguyên) ( //= )
10.2.7. Chia và gán ( lấy dư ) ( %= )
10.2.8. Lũy thừa và gán ( **= )
10.3. Toán tử so sánh
10.3.1. Bằng nhau ( == )
10.3.2. Khác nhau ( != )
10.3.3. Bé hơn ( < )
10.3.4. Bé hơn hoặc bằng ( <= )
10.3.5. Lớn hơn ( > )
10.3.6. Lớn hơn hoặc bằng ( >= )
10.3.7. A không phải là B ( A is not B )
10.4. Toán tử logic
10.4.1. and (và)
10.4.2. or (hoặc)
10.4.3. not (phủ định)
10.4.4. A là B ( A is B )
11. Một số hàm quan trọng
11.1. randrange( x , y)
11.1.1. Cho số ngẫu nhiên trong khoảng >= x và < y
11.1.2. from random import randrange
11.2. round( n , x )
11.2.1. Làm tròn n đến số thập phân thứ x
11.3. Time
11.3.1. clock()
11.3.1.1. Đếm thời gian
11.3.1.2. Tổng thời gian = Thời gian kết thúc - Thời gian bắt đầu
11.3.2. sleep( x )
11.3.2.1. Nghỉ trong khoảng x giây trước khi đến bước tiếp theo
11.4. exit
11.4.1. giống như break nhưng thoát luôn chương trình
11.5. eval( )
11.5.1. Nhập vào một giá trị thức thì nó tự tính toán
12. Hàm trong Python
12.1. Là khối lệnh thực hiện một công việc hoàn chỉnh
12.2. Cách khai báo: def FunctionName(parameter): block
12.3. Có 2 loại hàm
12.3.1. Hàm trả về kết quả
12.3.1.1. Khai báo: Result = FunctionName([ parameter ])
12.3.2. Hàm không trả về kết quả
12.3.2.1. Khai báo: FunctionName([ parameter ])
12.4. Nguyên tắc: LIFO ( Last in first out - Ra trước vào sau)
12.5. Biến toàn cục - biến cục bộ
12.5.1. Giá trị bên trong hàm không liên quan đến giá trị bên ngoài
12.5.2. Nếu muốn lấy bên ngoài thì dùng: global <biến toàn cục muốn chèn vào>
12.6. Parameter mặc định
12.6.1. Nếu ko có giá trị nào truyền vào thì thì lấy giá trị mặc định mà hàm đã tạo
12.7. Lambda Expression
12.7.1. lambda parameterlist: expression
12.7.1.1. lambda là tên hàm
12.7.1.2. parameterlist là các giá trị
12.7.1.3. expression là biểu thức đơn