images
16/11/2020 07:28 am

Biến và Kiểu dữ liệu trong Python: Kiểu Số và Xâu

Biến là đại lượng có thể thay đổi giá trị. Trong một chương trình, biến và giá trị biến được lưu trữ trên bộ nhớ RAM của máy tính

CPU vs RAM

CPU: Central Processing Unit: Bộ não máy tính dành cho việc tính toán

RAM: Random Access Memory: Nơi lưu trữ dữ liệu, ví dụ như: đầu vào các phép tính và kết quả của các phép tính.



Biến


Biến là đại lượng có thể thay đổi giá trị. Trong một chương trình, biến và giá trị biến được lưu trữ trên bộ nhớ RAM của máy tính

Ví dụ về tạo và gán giá trị cho biến:

x = 11.5


Khai báo một biến x là kiểu số và có giá trị là 11.5. Dấu = được gọi là phép gán giá trị cho một biến. Biến sẽ không thay đổi giá trị cho tới khi bị gán lại giá trị khác.


>>> x =  11.5 

>>> x

11.5

>>> x  + 10

21.5

>>> x = 20

>>> x + 10

30


Một biến có thể có tên tuỳ ý: tên ngắn (x, y) hoặc một cái tên có ý nghĩa, ví dụ: car. Quy định về biến trong Python:


- Một biến phải bắt đầu với kí tự hoặc dấu underscore (_)


- Biến không thể bắt đầu với một kí tự số


- Biến chỉ có thể chứa các kí tự sau (A-z, 0-9, và _ )


- Biến có đặc điểm là case-sensitive, từ là phân biệt chữ hoa và chữ thường


- Khi sử dụng biến, bạn trước tiên phải khai báo biến, nếu không sẽ nhận lỗi: NameError.


Biến và phép gán


Gán giá trị cho 1 biến:


>>> x=3


Gán giá trị cho nhiều biến:


>>> x,y,z=1,2,3

>>> x

1

>>> y

2

>>> z

3

>>>x=y=z=3

>>>x

3


Biến và toán tử


>>> x=3          # Phép gán x = 3


>>>y = 5 + x   # Phép gán 1 biến với kết quả của phép cộng

8

>>> x + y        # Thực hiện phép cộng 2 biến.      

11


Kiểu dữ liệu


Kiểu dữ liệu xâu:   str

Kiểu dữ liệu số: int, float, complex

Kiểu dữ liệu tuần tự: list, tuple, range

Kiểu dữ liệu từ điển: dict

Kiểu dữ liệu tập hợp: set, frozenset

Kiểu dữ liệu đúng-sai (True-False): bool

Kiểu dữ liệu nhị phân: bytes, bytearray, memoryview


Khi định nghĩa một biến, thì biến sẽ có kiểu dữ liệu nhất định: Là số, là xâu,... Tuy nhiên trong Python có 2 đặc điểm cần lưu ý:


- Không cần định nghĩa kiểu dữ liệu cho biến. Khác với Java, C. Khi định nghĩa kiểu số, cần viết: int x = 5. Trong Python chỉ đơn giản x = 5, thì x là kiểu int


- Một biến có thể có nhiều kiểu dữ liệu khác nhau căn cứ vào giá trị của biến đó tại thời điểm xác định kiểu.


2 đặc điểm này của Python được gọi là dynamic typing, giúp cho việc sử dụng Python vô cùng linh hoạt. (Nhưng cũng dễ lỗi…)


Để xác định kiểu dữ liệu của biến, bạn làm như sau: type(x)

>>> x = 3

>>> type(x)   #Trả về kiểu dữ liệu số nguyên

int


>>> x = “Techzonefun" #Trả về kiểu dữ liệu xâu

>>> type(x)

str


Trường hợp trên x có thể là kiểu số, hoặc sau đó là kiểu xâu.


Comment code


Trong Python, khi ta viết code và muốn thêm dòng để giải thích, ta dùng kí tự #. Ví dụ:


print(“Hello") # In ra dòng chữ Hello

print(“techzonefun”) # In ra dòng chữ techzonefun


Các dòng chữ sau ký tự # sẽ được coi là dòng giải thích và không ảnh hưởng tới cách các dòng code được thực thi.


Sử dụng Calculator với number


Python có thể sử dụng như là một chiếc máy tính tính toán. Chúng ta hãy thử làm việc với kiểu dữ liệu số. Bắt đầu bằng lệnh python trong command line:


C:\Users\ThinkPad>python

Python 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 22:39:24) [MSC v.1916 32 bit (In

tel)] on win32

Type "help", "copyright", "credits" or "license" for more information.

>>>


>>> 1 + 1 

2

>>> 2 * 5

10


>>> (2 * 5) / 3

3.333333335


>>> 23 / 2

11.5


Phép tính phần nguyên khi chia:

>>> 23 // 2

11


Phép tính trả về phần dư khi chia:

>>> 23 % 2

1


>>> 12  - 3 * 3

3


Sử dụng xâu


Một xâu trong Python là chuỗi các kí tự. Một xâu trong Python được nằm trong ‘...’ hoặc “...”. Dưới đây là một số các toán tử trên xâu:


>>> “Hello techzonefun"

‘Hello techzonefun’


>>> ‘Hello techzonefun’

‘Hello techzonefun’


Nếu muốn sử dụng kí tự ‘ hoặc “ trong xâu, cần sử dụng escape kí tự này với kí tự \:

>>> ‘Hello \’techzonefun'

“Hello ‘techzonefun”


Kí tự xuống dòng: \n. Ví dụ:


>>>print(“Hello \ntechzonefun")

Hello

techzonefun


Kí tự \n sẽ giúp in chữ Hello,  in ra kí tự xuống dòng rồi in chữ techzonefun ở trên.

Nếu muốn in ra đúng các kí tự trong xâu, cần sử dụng ‘r như sau:


>>> print(r'Hello \ntechzonefun’)


Nếu bạn muốn tách xâu thành nhiều dòng mà không sử dụng kí tự \n, có thể sử dụng """... """, '''...'''.


Ví dụ:


>>> print("""

  hello

  techzonefun

""")


Nếu biến s được gán với giá trị này, ta sẽ thấy giá trị của s chứa kí tự \n


>>> s = """

  hello

  techzonefun

"""

>>> s

'hello \ntechzonefun'


Cộng 2 xâu vào nhau: Viết 2 xâu cạnh nhau


>>> "techzone" "fun"

'techzonefun'


Tuy nhiên ta không thể cộng xâu vào biến như sau:

>>> s = "techzone"

>>> s  "fun"

SyntaxError: invalid syntax


Bạn cần sử dụng dấu +:

>>> s + "fun"

'techzonefun'


Ta có thể sử dụng phép toán trên xâu với phép nhân (*) và phép cộng (+):


>>>"techzone" * 3 + "fun"

'techzonetechzonetechzonefun'


Bản chất của xâu là mảng tập hợp các kí tự. Do đó ta có thể truy cập vào phần tử của mảng để lấy các kí tự. Hãy nhìn thứ tự các kí tự với vị trí của nó trong xâu:


___________________________________________

  t    | e  |  c |  h  |  z  |  o  |  n  |  e   |  f  |  u   |  n

___________________________________________

 0    | 1  |  2 |  3  |  4  |  5  |  6  |  7  |  8  | 9   |  10

___________________________________________

 -11 | -10 |-9 | -8 | -7  | -6  | -5  | -4  | -3  | -2  | -1 

    


Độ dài của xâu được thể hiện qua hàm: len


>>>len(s)

11


Để truy cập vào các kí tự của xâu, bạn có thể sử dụng index với số dương là chỉ số của mảng và số âm là chỉ số “ngược":


>>> s = "techzonefun"

>>>s[0]

's'


>>>s[-10]

's'


Trường hợp bạn truy cập vào chỉ số ngoài giá trị từ -10 tới 10, sẽ có lỗi:


>>>s[11]

IndexError: string index out of range


Python casting


Casting là kĩ thuật để ‘ép kiểu' để biến đổi kiểu dữ liệu này sang kiểu dữ liệu khác. Ví dụ: Bạn có số “3” nhưng đây không phải là kiểu số int mà là kiểu str vì có dấu “.


Vậy bạn muốn biến nó thành kiểu số thì sao? Để casting - ép kiểu, bạn dùng cú pháp Kiểu (giá trị biến)


>>>"3" + "3"

?

>>>int("3") + int("3")  # int(“3”) sẽ ép kiểu “3” từ kiểu xâu sang kiểu số nguyên

6

>>>type(int("3"))

int


Bạn thử đoán kết quả xem:


>>> int(3.2)

?

>>>float(“3.5") + 1

?

>>>int(float(“3.5") + 1)           # Ép kiểu lồng nhau

?

>>>str(3)

?


Trong Python, kiểu dữ liệu sẽ được biến đối theo phép toán. Ví dụ: 


>>> x = 3/2 # Phép chia 2 số nguyên sẽ cho kiểu float

>>> x

1.5

>>> type(x)

float


Mời các bạn đọc thêm bài Python cơ bản: Giới thiệu và hướng dẫn cài đặt


- Tech Zone -

Thư giãn chút nào!!!

Bài viết liên quan