Các toán tử gán khác
Bên cạnh dấu =, có một số toán tử gán khác trong Python (và hầu hết các ngôn ngữ lập trình).
Giả sử chúng ta có biến x, với giá trị ban đầu là 10. Nếu chúng ta muốn tăng x lên 2, chúng ta có thể viết x = x + 2.
Đầu tiên, chương trình sẽ đánh giá biểu thức ở bên phải (là x + 2) và gán kết quả cho bên trái. Vì vậy, cuối cùng câu lệnh trên trở thành x <- 12.
Thay vì viết x = x + 2, chúng ta cũng có thể viết x += 2 để diễn đạt ý nghĩa tương tự. Dấu += thực chất là một cách viết tắt kết hợp dấu gán với toán tử cộng. Do đó, x += 2 đơn giản có nghĩa là x = x + 2.
Tương tự, nếu chúng ta muốn thực hiện một phép trừ, chúng ta có thể viết x = x - 2 hoặc x -= 2. Tương tự như vậy cho tất cả 7 toán tử được đề cập trong phần trên.
CÁC KIỂU DỮ LIỆU TRONG PYTHON
Trong chương này, trước tiên chúng ta sẽ xem xét một số kiểu dữ liệu cơ bản trong Python, cụ thể là số nguyên, số thực và chuỗi. Tiếp theo, chúng ta sẽ khám phá khái niệm về kiểu ép kiểu. Cuối cùng, chúng ta sẽ thảo luận về ba kiểu dữ liệu nâng cao hơn trong Python: list, tuple và dictionary.
Interger (số nguyên)
Số nguyên là các số không có phần thập phân, chẳng hạn như -5, -4, -3, 0, 5, 7, v.v.
Để khai báo một số nguyên trong Python, chỉ cần viết: variableName = giá trị ban đầu.
Ví dụ:
userAge = 20, mobileNumber = 12398724
Float (số thực)
Float là các số có phần thập phân, chẳng hạn như 1.234, -0.023, 12.01.
Để khai báo một số thực trong Python, chúng ta viết: variableName = giá trị ban đầu.
Ví dụ:
userHeight = 1.82, userWeight = 67.2
String (chuỗi)
Chuỗi tham chiếu đến văn bản. Để khai báo một chuỗi, bạn có thể sử dụng variableName = 'giá trị ban đầu' (dấu nháy đơn) hoặc variableName = "giá trị ban đầu" (dấu nháy kép).
Ví dụ:
userName = 'Peter', userSpouseName = “Janet”, userAge = '30'
Trong ví dụ cuối, bởi vì chúng ta viết userAge = '30' nên khi đó giá trị của userAge là một chuỗi. Ngược lại, nếu bạn viết userAge = 30 (không có dấu ngoặc kép) thì userAge là một số nguyên.
Chúng ta có thể kết hợp nhiều chuỗi con bằng cách sử dụng dấu nối (+). Chuỗi tham chiếu đến văn bản. Ví dụ: “Peter” + “Lee” tương đương với chuỗi “PeterLee”.
Các hàm String được tích hợp:
Python bao gồm một số hàm tích hợp để thao tác với các chuỗi. Một hàm chỉ đơn giản là một khối mã có thể sử dụng lại để thực hiện một nhiệm vụ nhất định. Chúng ta sẽ thảo luận sâu hơn về các hàm trong phần 7.
Ví dụ về một hàm có sẵn trong Python là phương thức upper () cho chuỗi. Bạn sử dụng nó để viết hoa tất cả các chữ cái trong một chuỗi. Ví dụ: 'Peter'.upper () sẽ cung cấp cho chúng ta chuỗi "PETER".
Định dạng chuỗi bằng toán tử %:
Các chuỗi cũng có thể được định dạng bằng cách sử dụng toán tử %. Điều này cho phép bạn kiểm soát tốt hơn cách bạn muốn chuỗi của mình được hiển thị và lưu trữ. Cú pháp để sử dụng toán tử % là:
“Chuỗi được định dạng”% (các giá trị hoặc biến được chèn vào chuỗi, được phân tách bằng dấu phẩy)
Có ba phần trong cú pháp này. Đầu tiên chúng ta viết chuỗi được định dạng trong dấu ngoặc kép. Tiếp theo là ký hiệu %. Cuối cùng là một cặp dấu ngoặc tròn () mà trong đó chúng ta viết các giá trị hoặc biến được chèn vào chuỗi.
Ví dụ:
brand = ‘Apple ’
exchangeRate = 1.235235245
message = ‘The price of this %s laptop is %d USD and the exchange rate is %4.2f USD to 1 EUR’ %(brand, 1299, exchangeRate)
print (message)
Trong ví dụ trên, chuỗi ‘The price of this %s laptop is %d USD and the exchange rate is %4.2f USD to 1 EUR’ là chuỗi mà chúng ta muốn định dạng. Ta sử dụng các định dạng %s, %d và %4.2f làm trình giữ chỗ trong chuỗi. Các trình giữ chỗ này sẽ được thay thế bằng các giá trị brand, 1299 và exchangeRate tương ứng được chỉ định trong dấu ngoặc tròn ().
Chạy thử đoạn code trên ta sẽ thấy kết quả như sau:
Định dạng %s được sử dụng để đại diện cho một chuỗi (trong trường hợp này là ‘Apple’) trong khi định dạng %d đại diện cho một số nguyên (1299). Nếu chúng ta muốn thêm dấu cách trước một số nguyên, chúng ta có thể thêm một số giữa % và d để cho biết độ dài mong muốn của chuỗi. Ví dụ: “%5d” %(123) sẽ cho chúng ta kết quả “123 ”(với 2 khoảng trắng ở phía trước và tổng chiều dài là 5).
Định dạng %f được sử dụng để định dạng số thực. Ở đây chúng ta định dạng nó là %4.2f trong đó 4 đề cập đến tổng độ dài và 2 đề cập đến 2 chữ số thập phân. Nếu chúng ta muốn thêm dấu cách trước số, chúng ta có thể định dạng là %7.2f và kết quả là “1.24” (với 2 chữ số phần thập phân, 3 khoảng trắng ở phía trước và tổng chiều dài là 7).
Định dạng chuỗi sử dụng phương thức format():
Ngoài việc sử dụng toán tử % để định dạng chuỗi, Python còn cung cấp cho chúng ta phương thức format() để định dạng chuỗi. Cú pháp là:
“Chuỗi được định dạng” .format (các giá trị hoặc biến được chèn vào chuỗi, được phân tách bằng dấu phẩy)
Khi sử dụng format(), chúng ta không sử dụng %s, %d hay %f nữa mà dùng dấu ngoặc nhọn {} như sau:
message = ‘The price of this {0:s} laptop is {1:d} USD and the exchange rate is {2:4.2f} USD to 1 EUR’.format(‘Apple’ , 1299, 1.235235245)
Bên trong dấu ngoặc nhọn, đầu tiên là vị trí của tham số sử dụng, theo sau là dấu hai chấm. Sau dấu hai chấm là định dạng. Chú ý là không được có bất kỳ khoảng trắng nào trong dấu ngoặc nhọn.
Khi viết định dạng (‘Apple’, 1299, 1.235235245), chúng ta đang chuyển ba tham số vào phương thức format(). Tham số ‘Apple’ có vị trí là 0, 1299 có vị trí là 1 và 1.235235245 có vị trí là 2. Lưu ý vị trí của tham số luôn bắt đầu từ 0.
Khi chúng ta viết {0: s}, chúng ta đang yêu cầu trình thông dịch thay thế {0: s} bằng tham số ở vị trí 0 và đó là một chuỗi (định dạng là ‘s’).
Khi chúng ta viết {1: d}, chúng ta đang đề cập đến tham số ở vị trí 1, là một số nguyên (định dạng là d).
Khi chúng ta viết {2: 4.2f}, chúng ta đang đề cập đến tham số ở vị trí 2, là một số thực và chúng ta muốn nó được định dạng với 2 chữ số thập phân và tổng độ dài là 4 (định dạng là 4.2f).
Khi chạy code ta cũng nhận được kết quả như định dạng bằng toán tử % ở trên.
Lưu ý: Nếu bạn không muốn định dạng chuỗi, bạn có thể chỉ cần viết:
message = ‘The price of this {} laptop is {} USD and the exchange rate is {} USD to 1 EUR’.format(‘Apple’ , 1299, 1.235235245)
Ở đây chúng ta không phải chỉ định vị trí của các tham số. Trình thông dịch sẽ thay thế các dấu ngoặc nhọn dựa trên thứ tự của các tham số được cung cấp. Chúng ta sẽ nhận được:
Để hiểu rõ hơn về phương thức format(), hãy thử chương trình sau:
message1 = ‘{0} is easier than {1}’.format(‘Python’ , ‘Java’)
message2 = ‘{1} is easier than {0}’.format(‘Python’ , ‘Java’)
message3 = ‘{:10.2f} and {:d}’.format(1.234234234, 12)
message4 = ‘{}’.format(1.234234234)
print (message1) #Bạn sẽ nhận ‘Python is easier than Java’
print (message2) #Bạn sẽ nhận ‘Java is easier than Python’
print (message3) #Bạn sẽ nhận ‘ 1.23 and 12’ #Bạn không cần chỉ ra vị trí của các tham số
print (message4) #Bạn sẽ nhận 1.234234234. Không có định dạng nào được thực hiện.
Ép kiểu trong Python
Đôi khi trong chương trình của chúng ta cần chuyển đổi từ kiểu dữ liệu này sang kiểu dữ liệu khác, chẳng hạn như từ số nguyên sang chuỗi. Đây được gọi là ép kiểu.
Có ba hàm tích hợp sẵn trong Python cho phép chúng ta thực hiện ép kiểu, đó là: int(), float() và str().
Hàm int() trong Python nhận vào một số thực hoặc một chuỗi thích hợp và chuyển nó thành một số nguyên. Để thay đổi float thành interger, chúng ta có thể nhập int(5.712987). Kết quả là chúng ta sẽ nhận được 5 (phần thập phân sẽ bị bỏ đi). Để thay đổi một string thành một interger, chúng ta có thể nhập int(“4”) và chúng ta sẽ nhận được 4. Tuy nhiên, chúng ta không thể nhập int(“Hello”) hoặc int(“4.22321”). Chúng ta sẽ gặp lỗi trong cả hai trường hợp này.
Hàm float() nhận vào một số nguyên hoặc một chuỗi thích hợp và thay đổi nó thành một số thực. Ví dụ: nếu chúng ta nhập float(2) hoặc float(“2”), chúng ta sẽ nhận được 2.0. Nếu chúng ta nhập float(“2.09109”), chúng ta sẽ nhận được 2.09109 là một float chứ không phải là một string vì dấu ngoặc kép đã bị loại bỏ.
Mặt khác, hàm str() chuyển đổi một số nguyên hoặc một số thực thành một chuỗi. Ví dụ, nếu chúng ta gõ str(2.1), chúng ta sẽ nhận được "2.1".
Trên đây chúng ta đã đề cập đến ba kiểu dữ liệu cơ bản trong Python và cách truyền của chúng, bây giờ hãy chuyển sang các kiểu dữ liệu nâng cao hơn.
List
Tuple
Dictionary