Dictionary: Key-Value Data Structure
Bây giờ,chúng ta biết rằng List chỉ tạo ra được với chỉ mục là số nguyên. Vậy chúng ta không muốn sử dụng số nguyên làm chỉ mục thì sao nhỉ? Một số cấu trúc dữ liệu mà chúng tôi có thể sử dụng là số, chuỗi hoặc các loại chỉ mục khác.
Hãy tìm hiểu về Dictionary. Dictionary là tập hợp các key-value. Nó sẽ trông giống như dưới đây:
dictionary_example = { "key1": "value1", "key2": "value2", "key3": "value3" }
key là chỉ mục trỏ đến value. Làm thế nào để truy cập giá trị của Dictionary. Hãy thử nó xem sao:
ictionary_tk = { "name": "Leandro", "nickname": "Tk", "nationality": "Brazilian" } print("My name is %s" %(dictionary_tk["name"])) # My name is Leandro print("But you can call me %s" %(dictionary_tk["nickname"])) # But you can call me Tk print("And by the way I'm %s" %(dictionary_tk["nationality"])) # And by the way I'm Brazilian
Vậy ta thêm phần tử vào Dictionary như nào nhỉ? Cùng xem ví dụ dưới đây:
dictionary_tk = { "name": "Leandro", "nickname": "Tk", "nationality": "Brazilian" } dictionary_tk['age'] = 24 print(dictionary_tk) # {'nationality': 'Brazilian', 'age': 24, 'nickname': 'Tk', 'name': 'Leandro'}
Chúng ta chỉ cần gán một value cho một Dictionary key. Không có gì phức tạp ở đây phải không .
Classes & Objects
Python là một ngôn ngữ lập trình hướng đối tượng, có các khái niệm:class và object.
Một class là một mô hình chi tiết cho các đối tượng của nó.
Vì vậy, một lần nữa, một class chỉ là một mô hình, hoặc một cách để xác định các attributes và behavior.
Cùng xem cú pháp Python cho class:
class Vehicle: pass
Các Object là thể hiện của một class.
car = Vehicle() print(car) # <__main__.Vehicle instance at 0x7fb1de6c2638>
Ở đây car là một đối tượng của class Vehicle.
Chúng ta thiết lập tất cả các thuộc tính như số bánh xe, loại xe, sức chứa, vận tốc tối đa khi khở tạo đối tương xe. Ở đây chúng ta định nghĩa lớp để nhận dữ liệu khi khởi tạo nó.
class Vehicle: def __init__(self, number_of_wheels, type_of_tank, seating_capacity, maximum_velocity): self.number_of_wheels = number_of_wheels self.type_of_tank = type_of_tank self.seating_capacity = seating_capacity self.maximum_velocity = maximum_velocity
Chúng ta sử dụng init method. Chúng ta gọi đây là phương thức khởi tạo. Vì vậy, khi chúng ta khởi tạo ra đối tượng xe, chúng ta có thể định nghĩa các thuộc tính này. Hãy tưởng tượng chúng ta Tesla Model S, và chúng ta muốn tạo ra đối tượng này. Nó có 4 bánh xe, chaỵ bằng năng lượng điện, 5 chỗ ngồi, vận tốc tối đa là 250 km/h. Hãy tạo đối tượng này:
tesla_model_s = Vehicle(4, 'electric', 5, 250)
Tất cả các thuộc tính đã được thiết lập. Nhưng làm cách nào để chúng ta có thể truy cập vào các giá trị của các thuộc tính này? Đó là method. Đó là object’s behavior.
class Vehicle: def __init__(self, number_of_wheels, type_of_tank, seating_capacity, maximum_velocity): self.number_of_wheels = number_of_wheels self.type_of_tank = type_of_tank self.seating_capacity = seating_capacity self.maximum_velocity = maximum_velocity def number_of_wheels(self): return self.number_of_wheels def set_number_of_wheels(self, number): self.number_of_wheels = number
Đây là triển khai thực hiện 2 methods: number_of_wheels và set_number_of_wheels. Chúng được gọi là getter và setter. Bởi vì giá trị đầu tiên nhận giá trị thuộc tính và giá trị thứ hai đặt giá trị mới cho thuộc tính.
Trong Python, chúng ta có thể làm điều đó bằng cách sử dụng @property để xác định getters và setters. Hãy xem đoạn code dưới đây:
class Vehicle: def __init__(self, number_of_wheels, type_of_tank, seating_capacity, maximum_velocity): self.number_of_wheels = number_of_wheels self.type_of_tank = type_of_tank self.seating_capacity = seating_capacity self.maximum_velocity = maximum_velocity @property def number_of_wheels(self): return self.number_of_wheels @number_of_wheels.setter def number_of_wheels(self, number): self.number_of_wheels = number
Và chúng ta có thể sử dụng methods này như các attributes.
tesla_model_s = Vehicle(4, 'electric', 5, 250) print(tesla_model_s.number_of_wheels) # 4 tesla_model_s.number_of_wheels = 2 # setting number of wheels to 2 print(tesla_model_s.number_of_wheels) # 2
Điều này hơi khác so với defining methods. Các phương thức hoạt động như các thuộc tính.
Nhưng chúng ta cũng có thể sử dụng các methods cho những thứ khác, như phương pháp ‘make_noise’. Hãy xem nó:
class Vehicle: def __init__(self, number_of_wheels, type_of_tank, seating_capacity, maximum_velocity): self.number_of_wheels = number_of_wheels self.type_of_tank = type_of_tank self.seating_capacity = seating_capacity self.maximum_velocity = maximum_velocity def make_noise(self): print('VRUUUUUUUM')
Khi chúng ta họi đến method này
tesla_model_s = Vehicle(4, 'electric', 5, 250) tesla_model_s.make_noise() # VRUUUUUUUM
Class và Object
Object là một đại diện của đối tượng thực tế như xe, nhà, chó, méo. Đối tượng chia sẻ hai đặc điểm chính: Data và Behavior Xe có data như số bánh xe, số ghế… và có behavior có thể chạy, dừng lại, hiển thị xăng và nhiều thứ khác Chúng ta nhận định rằng data giống như attributes và behavior giống như methods trong lập trình hướng đối tượng Data -> Attibutes and Behavior -> Methods Và Class là một bản thiết kế chi tiết từ các đối tượng được tạo ra. Trong thế giới thực chúng ta có nhiều kiểu đối tượng giống nhau, tất cả chúng có chung 1 sản phẩm mẫu (đều có động cơ, bánh xe, cửa ra vào)…
List: Collection | Array | Data Structure
Bạn muốn lưu trữ số nguyên 1 trong một biến, nhưng giờ muốn lưu 2, 3, 4 hoặc nhiều hơn?
List
là một collection mà bạn có thể sử dụng để lưu trữ một danh sách các giá trị
my_integers = [1, 2, 3, 4, 5]
Và việc lấy ra các phần tử trong list cũng giống như các ngôn ngữ lập trình khác đó là thông qua các
index
của danh sách
my_integers = [1, 2, 3, 4, 5] print(my_integers[0]) # => 1 print(my_integers[3]) # => 4
Iteration: Looping Through Data Structures
Như chúng ta đã học ở bên trên, việc lặp lại List cũng rất đơn giản. Hãy thử nào:
bookshelf = [ "The Effective Engineer", "The 4 hours work week", "Zero to One", "Lean Startup", "Hooked" ] for book in bookshelf: print(book)
Đối với hash, chúng ta cũng có thể sử dụng vòng lặp for, nhưng chúng ta sẽ áp dụng với key:
dictionary = { "some_key": "some_value" } for key in dictionary: print("%s --> %s" %(key, dictionary[key])) # some_key --> some_value
Chúng ta đã đặt tên cho 2 tham số là key và value, nhưng không cần thiết. Chúng ta có thể đặt tên khác, hãy thử xem nào:
dictionary_tk = { "name": "Leandro", "nickname": "Tk", "nationality": "Brazilian", "age": 24 } for attribute, value in dictionary_tk.items(): print("My %s is %s" %(attribute, value)) # My name is Leandro # My nickname is Tk # My nationality is Brazilian # My age is 24
Giới thiệu khóa học
Hiện tại trên thế giới có khá nhiều loại ngôn ngữ lập trình như C , Java , PHP ..v..v.. Trong các loại ngôn ngữ lập trình nền tảng đó thì Python là một trong những ngôn ngữ lập trình mới. Nếu bạn đang tìm kiếm một ngôn ngữ của tương lai thì Python là 1 lựa chọn tốt. Các lý do sau đây sẽ khiến bạn nên sẽ chọn học Python
- Lý do 1: Python là ngôn ngữ mới và dễ học hơn bất kì ngôn ngữ nào
- Lý do 2: Python là ngôn ngữ hàng đầu tại các đất nước trên thế giới nhất là Châu Âu. Và bạn cũng đã biết tương lai Việt Nam sẽ được hội nhập với các nước trên thế giới vậy cho nên nguồn lực cho mã nguồn Python là cực kì nhiều.Vì đa phần các nước châu Âu họ đều sài Python thay cho C.
- Lý do 3: Python là ngôn ngữ giúp bạn viết được trên đa nền tảng nên ví dụ như lập trình website , lập trình di động và cả lập trình game thì Python đều có thể làm được.
- Lý do 4: Đảm bảo đây là nội dung đầy đủ và kỹ càng nhất về ngôn ngữ lập trình Python để từ đó bạn có thể áp dụng Python vào các công việc bạn muốn hướng tới hoặc tạo thêm nhiều cơ hội việc làm cho bạn.
Khóa học online trên website Unica.vn
Link Download: goo.gl/R1Z2vs
Link Dự Phòng: Python từ Zero đến Hero
Nội dung bài viết
Iteration: Looping thông qua Data Structures
Như đã biết về Python Basics,
List
iteration rất đơn giản. Các developer
Python
thường sử dụng looping
For
như sau:
bookshelf = [ “The Effective Engineer”, “The 4 hours work week”, “Zero to One”, “Lean Startup”, “Hooked” ] for book in bookshelf: print(book)
Vậy là với mỗi quyển trên kệ, (có thể làm mọi thứ) để print nó. Đơn giản & trực quan, đó chính là Python.
Đối với hash data structure, chúng ta cũng có thể sử dụng loop
for
nhưng áp dụng
key
:
dictionary = { “some_key”: “some_value” } for key in dictionary: print(“%s –> %s” %(key, dictionary[key])) # some_key –> some_value
Với mỗi
key
trong
dictionary
, chúng ta sẽ
key
đó và
value
tương ứng của nó.
Cách khác là sử dụng method
iteritems
.
dictionary = { “some_key”: “some_value” } for key, value in dictionary.items(): print(“%s –> %s” %(key, value)) # some_key –> some_value
Chúng ta đã đặt tên 2 biến số là
key
&
value
, nhưng không cần thiết, có thể đặt bất kì tên nào. Cùng xem:
dictionary_tk = { “name”: “Leandro”, “nickname”: “Tk”, “nationality”: “Brazilian”, “age”: 24 } for attribute, value in dictionary_tk.items(): print(“My %s is %s” %(attribute, value)) # My name is Leandro # My nickname is Tk # My nationality is Brazilian # My age is 24
Rõ ràng, chúng ta đã sử dụng attribute như 1 tham số cho
Dictionary
key
& nó hoạt động rất tốt. Quá tuyệt vời!
Classes & Objects
Một chút lý thuyết
Objects là đại diện cho các đối tượng trong thực tế như xe hơi, chó, xe đạp. Các objects sẽ chia sẻ 2 đặc tính chủ chốt là: data và behavior.
Xe sẽ có data, như số các bánh xe, số cửa sổ và sức chứa chỗ ngồi. Chúng sẽ phơi bày behavior: có thể nâng lên, dừng lại, hiển thị lượng nhiên liệu còn lại…
Chúng ta nhận diện data như các attributes & behavior như các methods trong lập trình hướng đối tượng.
Data → Attributes và Behavior → Methods
Và 1 Class chính là blueprint mà từ đây các objects đơn lẻ sẽ được tạo ra. Trên thực tế, chúng ta thường tìm các objects cùng loại với nhau. Như xe hơi đề có động cơ, bánh xe, cửa… và mỗi xe được build từ cùng bộ blueprints, có cùng các components.
Python Object-Oriented Programming mode: ON
Trong vai trò 1 ngôn ngữ lập trình hướng đối tượng, Python có 3 con concepts: class & object.
Một class là 1 blueprint, 1 model cho các objects của class đó.
Nói chung, 1 class chỉ là 1 model hoặc 1 cách để define attributes và behavior (như đã đề cập trong section theory). Ví dụ, 1 phương tiên di chuyển class có attributes riêng dùng để xác định liệu objects nào là các phương tiện di chuyển. Số lượng các bánh xe, loại bồn chứa, sức chứa chỗ ngồi và vận tốc maximum đều là các attributes của 1 phương tiện di chuyển.
Từ đây, chúng ta có thể xem syntax Python cho các classes:
class Vehicle: pass
Chúng ta define classes với 1 class statement – và chỉ có vậy. Dễ mà, phải không?
Objects là các instances của 1 class. Chúng ta tạo 1 instance bằng cách đặt tên cho class.
car = Vehicle() print(car) # <__main__.Vehicle instance at 0x7fb1de6c2638>
Ở đây,
car
là 1 object (hoặc instance) của class
Vehicle
.
Lưu ý rằng phương tiện di chuyển class của chúng ta có 4 attributes: số lượng bánh xe, loại bồn chứa, sức chứa chỗ ngồi và vận tốc tối đa. Chúng ta đặt tất cả những attributes này khi tạo 1 phương tiện object. Vậy nên ở đây sẽ define class để nhận data khi khởi tạo nó:
class Vehicle: def __init__(self, number_of_wheels, type_of_tank, seating_capacity, maximum_velocity): self.number_of_wheels = number_of_wheels self.type_of_tank = type_of_tank self.seating_capacity = seating_capacity self.maximum_velocity = maximum_velocity
Chúng ta sử dụng method
init
, gọi là 1 constructor method. Vì vậy, khi tạo phương tiện di chuyển object, chúng ta có thể define những attributes này. Hãy tưởng tượng rằng bạn rất yêu thích loại Tesla Model S, và muốn tạo loại object này. Nó sẽ có 4 bánh xe, chạy năng lượng điện, gồm 5 ghế và vận tốc tối đa là 250km/giờ(155 mph). Tạo object như sau:
tesla_model_s = Vehicle(4, ‘electric’, 5, 250)
Bốn bánh + “loại bồn chứa” bằng điện + 5 ghế + vận tốc tối đa 250km/ giờ
Tất cả các attributes đã được thiết lập. Nhưng làm thế nào để tiếp cận được các giá trị của những attributes này? Chúng ta gửi 1 tin nhắn đến object hỏi về chúng, gọi nó là 1 method, là hành vi của object trên. Hãy implement nó:
class Vehicle: def __init__(self, number_of_wheels, type_of_tank, seating_capacity, maximum_velocity): self.number_of_wheels = number_of_wheels self.type_of_tank = type_of_tank self.seating_capacity = seating_capacity self.maximum_velocity = maximum_velocity def number_of_wheels(self): return self.number_of_wheels def set_number_of_wheels(self, number): self.number_of_wheels = number
Đây là 1 implementation của 2 methods: number_of_wheels và set_number_of_wheels. Chúng ta gọi nó là
getter
&
setter
. Vì
getter
lấy attribute value và
setter
thiết lập 1 giá trị mới cho attribute đó.
Trong Python, thì sử dụng
@property
(
decorators
) để define
getters
và
setters
.
class Vehicle: def __init__(self, number_of_wheels, type_of_tank, seating_capacity, maximum_velocity): self.number_of_wheels = number_of_wheels self.type_of_tank = type_of_tank self.seating_capacity = seating_capacity self.maximum_velocity = maximum_velocity @property def number_of_wheels(self): return self.number_of_wheels @number_of_wheels.setter def number_of_wheels(self, number): self.number_of_wheels = number
Và sử dụng các methods này như những attributes:
tesla_model_s = Vehicle(4, ‘electric’, 5, 250) print(tesla_model_s.number_of_wheels) # 4 tesla_model_s.number_of_wheels = 2 # setting number of wheels to 2 print(tesla_model_s.number_of_wheels) # 2
Điều này có khác 1 chút với việc define methods. Các methods hoạt động như là các attributes. Ví dụ, khi set số bánh xe mới, chúng ta không áp số 2 vào thành 1 tham số mà set giá trị 2 vào
number_of_wheels
. Đây là 1 cách để viết code
pythonic
getter
và
setter
.
Nhưng có thể sử dụng methods cho những thứ khác, như method “make_noise”
class Vehicle: def __init__(self, number_of_wheels, type_of_tank, seating_capacity, maximum_velocity): self.number_of_wheels = number_of_wheels self.type_of_tank = type_of_tank self.seating_capacity = seating_capacity self.maximum_velocity = maximum_velocity def make_noise(self): print(‘VRUUUUUUUM’)
Khi call method này, nó chỉ trả lại 1 string “VRRRRUUUUM.”
tesla_model_s = Vehicle(4, ‘electric’, 5, 250) tesla_model_s.make_noise() # VRUUUUUUUM
Encapsulation: Ẩn thông tin
Encapsulation là cơ chế giới hạn khả năng tiếp cận trực tiếp đến data & methods của các objects. Nhưng cùng lúc đó, nó lại hỗ trỡ việc vận hành trên data đó (methods của các objects)
“Encapsulation được dùng để ẩn Data Members & Members function. VỚi Định nghĩa này, encapsulation đồng nghĩa là việc hiển thị nội bộ của 1 object được ẩn toàn bộ khỏi tầm nhìn của definition Đến từ Object đó” — Wikipedia
Tất cả hiển thị nội bộ của 1 object được ẩn khỏi bên ngoài. Chỉ có object đó mới tương tác được với data nội bộ của nó.
Đầu tiên, chúng ta cần phải hiểu cách hoạt động của các biến số instance
public
và
non-public
và methods.
Các biến số Instance công khai
Đối với 1 Python class, khởi tạo 1
public instance variable
trong constructor method của chúng ta.
Trong method constructor:
class Person: def __init__(self, first_name): self.first_name = first_name
Ở đây, áp dụng value
first_name
như 1 argument đến
public instance variable
.
tk = Person(‘TK’) print(tk.first_name) # => TK
Trong class:
class Person: first_name = ‘TK’
Không cần áp dụng
first_name
như 1 argument, và tất cả các instance objects sẽ có 1
class attribute
được khởi tạo với
TK
.
tk = Person() print(tk.first_name) # => TK
Tốt. Hiện chúng ta đã biết sử dụng
public instance variables
và
class attributes
. Điều thú vị khác nữa về phần
public
là có thể quản lý giá trị của biến, nghĩa là
object
có thể quản lý giá trị biến số của nó: các giá trị biến số
Get
và
Set
.
Nhắc đến
Person
, nếu muốn set giá trị khác cho biến
first_name
:
tk = Person(‘TK’) tk.first_name = ‘Kaio’ print(tk.first_name) # => Kaio
Đấy, chúng ta chỉ set giá trị khác (
kaio
) cho biến instance
first_name
và nó đã cập nhật giá trị. Đơn giản vậy thôi. Vì là biến
public
nên sẽ làm được điều đó.
Biến Instance không công khai
“Ở đây, chúng ta không sử dụng thuật ngữ “private” vì không có attribute nào thực sự riêng tư trong Python (mà không có 1 lượng lớn công việc không cần thiết)” — PEP 8
Giống như
public instance variable
, chúng ta có thể define
non-public instance variable
trong method constructor hoặc trong class. Điểm khác biệt syntax chính là: đối với
non-public instance variables
, sẽ sử dụng gạch dưới () trước tên
variable
.
“‘Các biến instance private mà không thể tiếp cận ngoài trừ lúc ở trong 1 object thì sẽ không tồn tại trong python. Tuy nhiên, có 1 quy ước được hầu hết code python theo là: 1 name prexide với 1 dấu gạch dưới (như:
_spam
) nên được xem như 1 phần không công khai của API (dù nó là 1 function, 1 method hay 1 data member)” — Python Software Foundation
Ví dụ:
class Person: def __init__(self, first_name, email): self.first_name = first_name self._email = email
Bạn có thấy biến
non-public variable
tk = Person(‘TK’, ‘[email protected]’) print(tk._email) # [email protected]
“Chúng ta có thể access & cập nhật nó.
Non-public variables
chỉ là 1 Quy ước và nên được xem như phần non-public của API”
Vì vậy, sử dụng 1 method cho phép define trong class definition. Cùng implement 2 methods (
update_email
) để hiểu rõ hơn:
class Person: def __init__(self, first_name, email): self.first_name = first_name self._email = email def update_email(self, new_email): self._email = new_email def email(self): return self._email
Bây giờ chúng ta có thể update & access
non-public variables
bằng những methods đó. Cùng xem:
tk = Person(‘TK’, ‘[email protected]’) print(tk.email()) # => [email protected] tk._email = ‘[email protected]’ print(tk.email()) # => [email protected] tk.update_email(‘[email protected]’) print(tk.email()) # => [email protected]
-
Khởi tạo 1 object mới bằng
first_name
TK và -
Printt email bằng cách tiếp cận
non-public variable
với 1 method - Cố gắng set
-
Cần phải xem
non-public variable
như phần
non-public
của API -
Cập nhật
non-public variable
bằng method instance - Thành công! Chúng ta có thể cập nhật nó trong class bằng method helper
Public Method
Với
public methods
, chúng ta cũng có thể sử dụng ngoài class:
class Person: def __init__(self, first_name, age): self.first_name = first_name self._age = age def show_age(self): return self._age
Thử test xem:
tk = Person(‘TK’, 25) print(tk.show_age()) # => 25
Tốt, vậy là không có vấn đề gì.
Non-public Method
Nhưng với
non-public methods
thì không làm được điều này. Hãy implement cùng class
Person
nhưng bây giờ với 1
show_age
non-public method
bằng 1 dấu gạch dưới ().
class Person: def __init__(self, first_name, age): self.first_name = first_name self._age = age def _show_age(self): return self._age
Giờ chúng ta sẽ cố gọi
non-public method
này với object của mình:
tk = Person(‘TK’, 25) print(tk._show_age()) # => 25
“Chúng ta có thể access & Update nó.
Non-public methods
chỉ là 1 quy ước & nên được xem như 1 phần non-public của API”
Dưới đây là ví dụ về cách sử dụng non-public methods:
class Person: def __init__(self, first_name, age): self.first_name = first_name self._age = age def show_age(self): return self._get_age() def _get_age(self): return self._age tk = Person(‘TK’, 25) print(tk.show_age()) # => 25
Chúng ta có 1
_get_age
non-public method
và 1
show_age
public method
. Object của chúng ta có thể sử dụng
show_age
(bên ngoài class) và
_get_age
chỉ được sử dụng bên trong class definition (trong method
show_age
). Nhưng 1 lần nữa, đây chỉ là vấn đề liên quan đến quy ước.
Encapsulation Summary
Với encapsulation, có thể đảm bảo rằng hiển thị nội bộ của object được ẩn.
Inheritance: các hành vi và các đặc tính
Một vài objects nào đó sẽ sở hữu vài điểm chung: behavior & characterists của chúng.
Trong lập trình hướng đối tượng, các class có thể thừa hưởng những đặc tính (data) và hành vi (methods) tương tự từ class khác.
Cùng xem 1 ví dụ khác và implement nó bằng Python.
Hãy tưởng tượng 1 chiếc xe hơi. Số lượng bánh xe, sức chứa chỗ ngồi và vận tốc tối đa là tất cả các attributes của 1 chiếc xe. Có thể nói rằng 1 class ElectricCar thừa hưởng cùng các attributes từ class Car thông dụng.
Class Car đã implement như sau:
class Car: def __init__(self, number_of_wheels, seating_capacity, maximum_velocity): self.number_of_wheels = number_of_wheels self.seating_capacity = seating_capacity self.maximum_velocity = maximum_velocity
Một khi đã khởi tạo, chúng ta có thể sử dụng tất cả
instance variables
đã được tạo ra. Tốt.
Trong Python, hãy áp dụng
parent class
vào
child class
như 1 tham số. Một class ElectricCar có thể kế thừa từ class Car.
class ElectricCar(Car): def __init__(self, number_of_wheels, seating_capacity, maximum_velocity): Car.__init__(self, number_of_wheels, seating_capacity, maximum_velocity)
Đơn giản vậy thôi, chúng ta không cần phải implement bất kì method nào khác, vì class nà đã có rồi (được thừa hưởng từ class Car).
my_electric_car = ElectricCar(4, 5, 250) print(my_electric_car.number_of_wheels) # => 4 print(my_electric_car.seating_capacity) # => 5 print(my_electric_car.maximum_velocity) # => 250
Thật đẹp, đúng không?
Tổng quan
Như vậy, bài viết này đã giúp chúng ta nắm được những kiến thức Python cơ bản:
- Cách hoạt động của các biến Python
- Cách hoạt động của conditional statements Python
- Cách looping Python (while & for) hoạt động
- Cách sử dụng Lists: Collection | Array
- Dictionary Key-Value Collection
- Cách lặp thông qua data structures
- Objects & Classes
- Các attibutes như data của objects
- Methods như hành vi của các objects
- Sử dụng getters và setters của Python & property decorator
- Encapsulation: ẩn thông tin
- Inheritance: behaviors (hành vi) và characteristics (đặc tính)
Bạn có thể đọc thêm quá trình nghiên cứu lập trình của tôi ở The Renaissance Developer.
Chúc vui, đừng quên hãy tiếp tục học hỏi và luôn cố gắng coding nhé!
Xem thêm các vị trí python tuyển dụng từ công ty lớn
Nguồn: TopDev via medium.freecodecamp.com
Learning Python: From Zero to Hero
Bài đăng này đã không được cập nhật trong 5 năm
Đối với tôi, lý do đầu tiên để học Python là nó là một ngôn ngữ lập trình đẹp. Thật là tự nhiên khi viết mã và thể hiện suy nghĩ của mình.
Một lý do khác là ta có thể sử dụng Python theo nhiều cách: data scienve, web development, machine learning, … . Các trang web nổi tiếng như Quora, Pinterest và Spotify đều sử dụng Python để phát triển phần backend. Vì vậy, ta hãy tìm hiểu một chút về nó nhé.
Basic
The Basics
1. Variables
Trong các ngôn ngữ lập trình khác, biến để lưu trữ giá trị. Trong Python, rất dễ để khai báo biến và thiết lập giá trị cho nó. Ví dụ, bạn muốn lưu giữ số trong một biến được gọi là
once
.
one = 1
Đơn giản như thế nào. Bạn có thể gán giá trị cho biến
one
. Tương tự với các giá trị khác tương tự
Bên cạnh
integers
, chúng ta có thể sử dụng
booleans (True/False)
,
string
,
float
và nhiều kiểu dữ liệu khác
# booleans true_boolean = True false_boolean = False # string my_name = "DiepTX" # float book_price = 53.400
2. Control Flow: conditional statements
if
sử dụng một biểu thức để đánh giá điều kiện đúng hay sai, nếu nó là True, nó thực hiện những gì bên trong câu lênh
if
. Ví dụ:
if True: print("Hello Python If") if 2 > 1: print("2 is greater than 1")
Khối
else
sẽ được thực thi nếu điều kiện trong
if
là sai
if 1 > 2: print("1 is greater than 2") else: print("1 is not greater than 2")
Bạn cũng có thể sử dụng khối
elif
if 1 > 2: print("1 is greater than 2") elif 2 > 1: print("1 is not greater than 2") else: print("1 is equal to 2")
3. Loop
Trong Python, bạn có thể lặp lại trong nhiều hình thức khác nhau. Tôi sẽ nói về
while
và
for
Vòng lặp
while
: Trong khi điều kiện là
True
, code bên trong khối sẽ được thực hiện
num = 1 while num <= 10: print(num) num += 1
Vòng lặp
while
cần một điều kiện lặp. Nếu nó vẫn đúng, vẫn tiếp tục lặp. Trong ví dụ trên, khi
num
là
11
điều kiện lặp sẽ là
False
Vòng lặp
for
: bạn có thể đưa biến
num
vào trong khối và khối
for
sẽ thực hiện lặp
for i in range(1, 11): print(i)
Dictionary: Key-Value Data Structure
Với
Lists
được đánh index là các integer. Nhưng nếu không muốn sử dụng integer là index? Một cấu trúc dữ liệu mà ta có thể sử dụng là số, chuỗi hoặc các loại chỉ số khác
Cấu trúc dữ liệu với tên gọi
Dictionary
khá giống trong Swift đó nhé .
Dictionary
là một collection của cặp key-value
dictionary_example = { "key1": "value1", "key2": "value2" }
key
là chỉ số trỏ tới
value
. Làm thế nào để truy cập tới
value
của
Dictionary
. Thông qua sử dụng
key
nhé.
dictionary_acc = { "name" = "Diep", "age" = 23 } print("My name is %s " %(dictionary_acc["name"])) # My name is Diep print("I'm %i " %(dictionary_acc["age"])) # I'm 23
Học Python từ con số 0 (Phần 1) – The Basics
Bài đăng này đã không được cập nhật trong 2 năm
Trước tiên, Python là gì ? Theo người tạo ra ngôn ngữ này, Guido van Rossum, Python là một:
“high-level programming language, and its core design philosophy is all about code readability and a syntax which allows programmers to express concepts in a few lines of code.”
Đối với tôi, lý do đầu tiên để học lập trình Python là nó thực sự là một ngôn ngữ tuyệt vời. Nó thực sự gần gũi khi code và thể hiện suy nghĩ của mình. Một lý do khác là chúng ta có thể sử dụng mã hóa bằng Python theo nhiều cách như data science, web development and machine learning
List: Collection | Array | Data Structure
Hãy tưởng tượng bạn muốn lưu trữ số nguyên 1 trong một biến. Nhưng giờ bạn muốn lưu trữ 2 và 3, 4, 5, … .
List là một collection có thể được sử dụng để lưu trữ một danh sách các giá trị (như các số nguyên mà bạn muốn). Vì vậy, hãy sử dụng nó:
my_integers = [1, 2, 3, 4, 5]
Trông nó thực sự đơn giản. Chúng ta đã tạo ra một mảng và lưu trữ các giá trị với biến my_integers.
Nhưng bạn có thể hỏi: “Làm thế nào để tôi có thể lấy ra được một giá trị từ mảng này?”
List có một khái niệm là index. Phần tử đầu tiên nhận index 0, thứ hai nhận là 1,… .
Bạn có hình dung như sau:
Sử dụng theo cú pháp Python, nó sẽ như thế này:
my_integers = [5, 7, 1, 3, 4] print(my_integers[0]) # 5 print(my_integers[1]) # 7 print(my_integers[4]) # 4
Hãy tưởng rằng giờ bạn không muốn lưu trữ các số nguyên mà thay vào đó là lưu trữ các string, ví dụ như danh sách tên người chẳng hạn. Xem ví dụ bên dưới nhé:
relatives_names = [ "Toshiaki", "Juliana", "Yuji", "Bruno", "Kaio" ] print(relatives_names[4]) # Kaio
Nó hoạt động theo cùng cách như với số nguyên. So good
Nhưng giờ muốn thêm phần tử vào List thì sẽ như thế nào đây. Dưới đây là cách thực hiện:
bookshelf = [] bookshelf.append("The Effective Engineer") bookshelf.append("The 4 Hour Work Week") print(bookshelf[0]) # The Effective Engineer print(bookshelf[1]) # The 4 Hour Work Week
Lập trình hướng đối tượng trong Python
Khai báo class
class Vehicle: pass
Object là một thể hiện của class.
car = Vehicle() print(car) # <__main__.Vehicle instance at 0x7fb1de6c2638>
car
là một object (hoặc instance) của class Vehicle
Ở ví dụ trên, lớp
Vehicle
có 4 thuộc tính: number of wheels, type of tank, seating capacity, và maximum velocity. Chúng ta đặt cho tất cả các thuộc tính này khi tạo một object vehicle. Ở đây chúng ta khai báo class để nhận data khi nó được khởi tạo:
class Vehicle: def _init_(self, number_of_wheels, type_of_tank, seating_capacity, maximum_velocity): self.number_of_wheels = number_of_wheels self.type_of_tank = type_of_tank self.seating_capacity = seating_capacity self.maximum_velocity = maximum_velocity
Sử dụng phương thức
init
, gọi tới một phương thức khởi tạo. Khi tạo ra object vehicle, các attributes được khởi tạo.
Tất cả thuộc tính được set. Nhưng truy cập vào giá trị của chúng bằng cách nào ?
class Vehicle: def __init__(self, number_of_wheels, type_of_tank, seating_capacity, maximum_velocity): self.number_of_wheels = number_of_wheels self.type_of_tank = type_of_tank self.seating_capacity = seating_capacity self.maximum_velocity = maximum_velocity def number_of_wheels(self): return self.number_of_wheels def set_number_of_wheels(self, number): self.number_of_wheels = number
Implement 2 phương thức
number_of_wheels
và
set_number_of_weels
. Chúng ta gọi tới
getter
và
setter
.
Trong Python, sử dụng
@property
(
decorators
) để khai báo
getters
and
setters
class Vehicle: def __init__(self, number_of_wheels, type_of_tank, seating_capacity, maximum_velocity): self.number_of_wheels = number_of_wheels self.type_of_tank = type_of_tank self.seating_capacity = seating_capacity self.maximum_velocity = maximum_velocity @property def number_of_wheels(self): return self.number_of_wheels @number_of_wheels.setter def number_of_wheels(self, number): self.number_of_wheels = number
Và có thể sử dụng các method này như một attributes
tesla_model_s = Vehicle(4, 'electric', 5, 250) print(tesla_model_s.number_of_wheels) # 4 tesla_model_s.number_of_wheels = 2 # setting number of wheels to 2 print(tesla_model_s.number_of_wheels) # 2
Variables
Bạn có thể nghĩ là các biến như các từ chứa một giá trị. Chỉ đơn giản vậy thôi.
Trong Python, nó thực sự dễ dàng để xác định một biến và thiết lập một giá trị cho nó. Hãy tưởng tượng bạn muốn lưu trữ số 1 và trong một biến được gọi là one. Hãy làm điều đó.
one = 1
Đơn giản vậy thôi. Bạn vừa gán giá trị 1 cho biến one
Và bạn có thể gán bất kỳ giá trị nào khác cho bất kỳ biến nào khác mà bạn muốn. Ví dụ như trường hợp đưới đây, bạn gán số nguyên 2 vào biến two, 10.000 vào biến some_number
two = 2 some_number = 10000
Bên cạnh các số nguyên, chúng ta cũng có thể sử dụng boolean (True/False), string, boolean và rất nhiều kiểu dữ liệu khác.
# booleans true_boolean = True false_boolean = False # string company_name = "Framgia" # float book_price = 16
Looping / Iterator
Trong Python, chúng ta có thể lặp trong các hình thức khác nhau. Tôi sẽ nói về: while và for Vòng lặp while: trong khi câu lệnh trả về true, đoạn code bên trong khối sẽ được thực thi. Ví dụ dưới, kết quả sẽ in ra số từ 1 đến 10.
num = 1 while num <= 10: print(num) num += 1
Vòng lặp while cần loop condition. Nếu nó vẫn trả về true, nó sẽ tiếp tục lặp lại. Trong ví dụ trên, khi num là 11, điểu kiện lặp sẽ là false.
Đối với vòng lặp for, bạn áp dụng biến num cho khối, và câu lệnh for sẽ lặp lại biến đó cho bạn. Kết quả sẽ in ra số từ 1 đến 10.
for i in range(1, 11): print(i)
Trông nó thật đơn giản phải không. Phạm vi bắt đầu từ 1 đến phần tử thứ 11.
Encapsulation
Public Instance Variables
Đối với một lớp Python, chúng ta có thể khởi tạo một public instance variable trong phương thức khởi tạo của chúng ta.
Trong phương thức khởi tạo:
class Person: def __init__(self, first_name): self.first_name = first_name
Ở đây chúng ta áp dụng giá trị first_name làm đối số cho public instance variable
tk = Person('TK') print(tk.first_name) # => TK
Trong class:
class Person: first_name = 'TK'
Ở đây chúng ta không cần phải áp dụng first_name như một đối số, và tất cả các đối tượng thể hiện sẽ có một class attribute được khởi tạo là TK
tk = Person() print(tk.first_name) # => TK
Chúng ta có thể đặt một giá trị khác cho biến first_name
tk = Person('TK') tk.first_name = 'Kaio' print(tk.first_name) # => Kaio
Vì đó là một biến public, nên chúng ta có thể làm điều đó.
…
Tham khảo
https://medium.freecodecamp.org/learning-python-from-zero-to-hero-120ea540b567
All rights reserved
Lập Trình Python Từ Zero – Hero
Bạn sẽ học được gì
Giới thiệu khóa học
Thế giới ngày nay có rất rất nhiều ngôn ngữ lập trình được sử dụng phổ biến, trong đó phải kể đến các ngôn ngữ C++, C#, Java, Python, PHP,… Đặc biệt, Python đang là ngôn ngữ lập trình mà những người mới học công nghệ thông tin tìm học nhiều nhất. Cho đến nay những lập trình viên Python vẫn luôn được các nhà tuyển dụng tại các doanh nghiệp lớn nhỏ chiêu mộ với những ưu ái cực tốt với mức thu nhập xếp vào loại cao nhất.
Những lý do bạn nên học Python bên cạnh các ngôn ngữ lập trình khác:
✔️ Lý do 1: Python là ngôn ngữ mới và dễ học hơn bất kì ngôn ngữ nào
✔️ Lý do 2: Python là ngôn ngữ hàng đầu tại các đất nước trên thế giới nhất là Châu Âu. Và bạn cũng đã biết tương lai Việt Nam sẽ được hội nhập với các nước trên thế giới vậy cho nên nguồn lực cho mã nguồn Python là cực kì nhiều.Vì đa phần các nước châu Âu họ đều sài Python thay cho C.
✔️ Lý do 3: Python là ngôn ngữ giúp bạn viết được trên đa nền tảng nên ví dụ như lập trình website, lập trình di động và cả lập trình game thì Python đều có thể làm được.
✔️ Lý do 4: Đảm bảo đây là nội dung đầy đủ và kỹ càng nhất về ngôn ngữ lập trình Python để từ đó bạn có thể áp dụng Python vào các công việc bạn muốn hướng tới hoặc tạo thêm nhiều cơ hội việc làm cho bạn.
Hãy tham gia khóa học lập trình web trực tuyến “Lập Trình Python Từ Zero – Hero” của giảng viên Vũ Quốc Tuấn để nhanh chóng trở thành chuyên gia lập trình ngay tại khóa học Python này
Nội dung khóa học
Tags: Ngôn ngữ lập trình Lập trình Python
Khóa học liên quan
Lập trình Android từ cơ bản đến thành thạo
529
999,000đ
1,600,000đ
RESTful API designing với Spring Boot
469
599,000đ
800,000đ
Khóa học lập trình ứng dụng di động App Inventor
32
799,000đ
900,000đ
Khóa học HTML & CSS từ cơ bản đến nâng cao 2023 (Sass)
999,000đ
ASP.NET và Xây dựng hoàn chỉnh ứng dụng website động
189
299,000đ
800,000đ
1417
499,000đ
700,000đ
Làm chủ Lập trình CAM NX 3 trục (Cơ bản – Chuyên sâu)
296
299,000đ
1,000,000đ
Học lập trình Typescript qua project thực tế
91
799,000đ
1,000,000đ
13
449,000đ
700,000đ
Xây dựng REST API Service với Node và Express
100
399,000đ
700,000đ
Thông tin giảng viên
- 1913 Học viên
- 2 Khóa học
Giảng viên Vũ Quốc Tuấn hiện là Founder trung tâm Quoctuan.info chuyên đào tạo lập trình di động Android , lập trình di động iOS và lập trình website PHP & MySQL chất lượng và uy tính nhất TP.HCM
Anh có hơn 8 kinh nghiệm trong mảng lập trình bao gồm : lập trình di động và lập trình website
Hiện anh cũng đang làm việc tại một số công ty chuyên outsource
Đồng thời, anh tham gia giảng dạy lập trình cả online và offline
Đánh giá của học viên
70%
11%
6%
0%
13%
Nhận xét của học viên
-
Btrần thái bằng
khóa học rất tuyệt vời, giảng viên hướng dẫn rất chi tiết. Cảm ơn unica rất nhiều
-
HĐinh Mnh Hiếu
vì mình cũng đọc qua giáo trình rồi nên mình thấy bộ video rất đầy đủ và chi tiết 🙂
-
TNguyễn Thị Thơm
thầy dạy rất nhiệt tình và tâm huyết nhưng có 1 vài chỗ khó hiểu và không giải thích rõ ràng
-
TTrần Vũ Trường
khá ổn cho newbie, nhưng em cần bài tập sau mỗi bài, hoặc chương, để không bị quên kiến thức,cần có một file bài tập
-
TTran Trung Thanh
Cảm ơn, web đã tạo 1 Chương trình học bỗ ích cho mọi người. Chương trình phù hợp vs người mới học Python. Nhưng có 1 điểm trừ đó là : Phần tương tác với giao viên còn hạn chế. Cảm ơn !!!
-
BThanh Bình
Tôi thấy khóa học hấp dẫn.
-
BTrương Minh Bửu
Thầy có thể làm 1 video show database qua API k Thầy, Tặng 1 video đi.
-
NKIM NGUYEN
Rất dễ hiểu. Ngắn gọn. Đầy đủ
-
TNguyễn Anh Tuấn
khóa học khá cũ rồi, giờ ipython3 chuyển thành jupiter bài giảng khá dễ hiểu, phần bài tập xử lý tình huống dạy nhanh quá
-
PLê Thiện Phước
Xin cảm ơn Unica đã cho mình thêm nhiều kiến thức.
Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, …
By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.
KQ:4613732
sao kết quả lại thế nhỉ, có phải e dịch sai đề bài không! tổng các số nhỏ hơn 4000000 phải không các thím!
Conditional statements
Câu lệnh if sử dụng một biểu thức để đánh giá liệu một câu lệnh là True hay False. Nếu nó là True, nó thực thi những gì nằm trong câu lệnh if. Ví dụ:
if True: print("Hello Python If") if 2 > 1: print("2 is greater than 1")
Câu lệnh else sẽ thực hiện nếu biểu thức if là false
if 1 > 2: print("1 is greater than 2") else: print("1 is not greater than 2")
Bạn cũng có thể sử dụng câu lệnh elif
if 1 > 2: print("1 is greater than 2") elif 2 > 1: print("1 is not greater than 2") else: print("1 is equal to 2")
Lặp qua cấu trúc dữ liệu
Lặp trong
List
rất đơn giản.
bookshelf = [ "The Effective Engineer", "The 4 hours work week", "Zero to One", "Lean Startup", "Hooked" ] for book in bookshelf: print(book)
Với cấu trúc dữ liệu
Dictionary
. Cũng có thể sử dụng
for
nhưng với
key
:
dictionary = {"some_key": "some_value"} for key in dictionary: print("%s ---> %s" %(key, dictionary[key])) # some_key ---> some_value
Có một cách khác đó là sử dụng
items
dictionary = { "some_key": "some_value" } for key, value in dictionary.items(): print("%s ---> %s" %(key, value)) # some_key ---> some_value
Tính đóng gói: Hiding Information
Public Instance Varibales
Class của Python có thể khởi tạo
public instance variable
class Person: def __init__(self, first_name): self.first_name = first_name
Sử dụng giá trị
first_name
là một đối số
public instance variable
tk = Person('TK') print(tk.first_name) # => TK
Non-public Instance Variable
We don’t use the term “private” here, since no attribute is really private in Python (without a generally unnecessary amount of work). — PEP 8
Giống như
public instance variable
, chúng ta có thể khai báo
none-public instance variable
vả trong phương thức khởi tạo hoặc trong class. Sự khác biệt cú pháp là: đối với
none-public instance variables
sử dụng gạch dưới trước
variable
.
‘Private’ instance variables that cannot be accessed except from inside an object don’t exist in Python. However, there is a convention that is followed by most Python code: a name prefixed with an underscore (e.g. _spam) should be treated as a non-public part of the API (whether it is a function, a method or a data member)” — Python Software Foundation
Ví dụ:
class Person: def __init__(self, first_name, email): self.first_name = first_name self._email = email
Bạn có thấy biến
none-public
tk = Person('TK', '[email protected]') print(tk._email) # [email protected]
We can access and update it. Non-public variables are just a convention and should be treated as a non-public part of the API.
Do đó chúng ta sử dụng một phương pháp cho phép làm điều đó trong khai báo lớp. Implement 2 method (
update_email
)
class Person: def __init__(self, first_name, email): self.first_name = first_name self._email = email def update_email(self, new_email): self._email = new_email def email(self): return self._email
Như trên chúng ta có thể cập nhật và truy cập
non-public variables
sử dụng các method đó
tk = Person('TK', '[email protected]') print(tk.email()) # => [email protected] tk._email = '[email protected]' print(tk.email()) # => [email protected] tk.update_email('[email protected]') print(tk.email()) # => [email protected]
-
Khởi tạo 1 object mới với
first_name
TK and -
In ra email bằng cách truy cập
non-public variable
với một method - Cố gắng để set một
-
Cần đối xử với
non-public varible
như một phần
non-public
của API -
Cập nhật
non-public varible
với phương thức khởi tạo - Ta có thể update nó trong class với helper method
Public method
Với
public method
class Person: def __init__(self, first_name, age): self.first_name = first_name self._age = age def show_age(self): return self._age
Và cũng không ngoại lệ đối với Python hay các ngôn ngữ lập trình khác
tk = Person('TK', 25) print(tk.show_age()) # => 25
Non public method
Nhưng với
non-public method
ta không thể gọi như
public method
. Cùng sử dụng class
Person
nhưng với
non-public method
với dấu gạch dưới
class Person: def __init__(self, first_name, age): self.first_name = first_name self._age = age def _show_age(self): return self._age
Ta sẽ gọi method đó như sau
tk = Person('TK', 25) print(tk._show_age()) # => 25
We can access and update it.
Non-public
methods are just a convention and should be treated as a non-public part of the API.
Dưới đây là ví dụ để ta hiểu rõ hơn về nó
class Person: def __init__(self, first_name, age): self.first_name = first_name self._age = age def show_age(self): return self._get_age() def _get_age(self): return self._age tk = Person('TK', 25) print(tk.show_age()) # => 25
Chúng ta có
show_age
là
public method
và
_get_age
là
non-public method
.
show_age
có thể sử dụng bởi class
Person
và
_get_age
chỉ được sử dụng bên trong class đã khai báo (bên trong
show_age
)
Với tính kế thừa cũng giống như các ngôn ngữ lập trình hướng đối tượng khác nên tôi sẽ không đề cập ở bài viết này nữa. Ở bài viết sau tôi sẽ đi sâu hơn về ngôn ngữ Python. Cảm ơn bạn đã đọc bài viết này !
To be continue…
All rights reserved
Trước nhất, Python là gì? Theo người sáng lập, Guido van Rossum, Python là:
“Là programming language high-level, và triết lý core design tập trung vào code readability và syntax cho phép các programmers thể hiện được concepts chỉ trong vài dòng code”
Với tôi, lý do đầu tiên học Python vì đây là ngôn ngữ đẹp, có thể code & thể hiện suy nghĩ của tôi 1 cách tự nhiên.
Lý do nữa chúng tôi có thể tận dụng việc code Python trong nhiều lĩnh vực như: Data Science, Web Development, Machine Learning… Quora, Pinterest & Spotify đều dùng Python để lập trình backend Web của mình.
Tuyển python lương cao các công ty hot
Kiến thức cơ bản
Variables – Các biến số
Bạn có thể xem các biến số này như những từ ngữ chứa 1 giá trị.
Trong Python, rất dễ để define 1 variable và đặt giá trị cho nó. Hãy tưởng tượng bạn muốn lưu số 1 trong biến gọi là “one”. Bạn có thể làm như sau:
one = 1
Quá dễ phải không? Chỉ cần chỉ định giá trị 1 đến biến “one”.
two = 2 some_number = 10000
Và bạn có thể chỉ định bất kì giá trị nào đến bất kì biến số nào mà bạn muốn. Như đã thấy ở bảng trên, biến “two” giữ số nguyên 2, và “some_number” giữ 10,000.
Bên cạnh các số nguyên, chúng ta cũng có thể sử dụng booleans (True / False), strings, float, và rất nhiều kiểu dữ liệu khác.
# booleans true_boolean = True false_boolean = False # string my_name = “Leandro Tk” # float book_price = 15.80
Control Flow: conditional statements (lệnh tùy điều kiện)
“If” sử dụng 1 expression để xác định liệu statement là True hay False. Nếu là True, nó sẽ thực thi những gì thuộc về lệnh “if”. Ví dụ:
if True: print(“Hello Python If”) if 2 > 1: print(“2 is greater than 1”)
2 lớn hơn 1, vì vậy code “print” sẽ được thực thi.
Lệnh “else” sẽ được thực thi nếu expression “if” là false.
if 1 > 2: print(“1 is greater than 2”) else: print(“1 is not greater than 2”)
1 không lớn hơn 2, nên code trong “else” statement will be executed.
Bạn cũng có thể sử dụng statement “elif”:
if 1 > 2: print(“1 is greater than 2”) elif 2 > 1: print(“1 is not greater than 2”) else: print(“1 is equal to 2”)
Looping / Iterator
Trong Python, chúng ta có thể iterate theo nhiều hình thức khác nhau, như while và for.
While Looping: nếu statement là True, thì code trong block sẽ được thực thi. Vì vậy, code này sẽ in số từ 1 đến 10.
num = 1 while num <= 10: print(num) num += 1
Loop while cần 1 “loop condition.” Nếu True, nó sẽ tiếp tục lặp. Trong ví dụ này, khi
num
là
11
loop condition sẽ bằng
False
.
Một đoạn code căn bản khác mà bạn cần hiểu chính là:
loop_condition = True while loop_condition: print(“Loop Condition keeps: %s” %(loop_condition)) loop_condition = False
Loop condition là
True
nên nó sẽ tiếp tục lặp — cho đến khi chúng ta set nó
False
.
For Looping: bạn áp dụng biến “num” cho block này, và lệnh “for” sẽ lặp nó cho bạn. Đoạn code này sẽ print tương tự như while code: từ 1 đến 10.
for i in range(1, 11): print(i)
Bạn thấy không? Rất đơn giản. Vùng sẽ bắt đầu với và kéo dài đến element thứ
11
(
10
là element số thứ tự
10
).
List: Collection | Array | Data Structure
Tưởng tượng bạn muốn lưu số nguyên 1 trong 1 biến số. Nhưng có thể bây giờ bạn lại muốn lưu 2. Và 3, 4, 5 …
Liệu tôi có cách nào khác để lưu tất cả các số nguyên mà tôi muốn, nhưng không phải trong hàng triệu biến số? Tất nhiên là có 1 cách như thế.
List
là 1 collection được dùng để lưu danh sách các giá trị (như những số nguyên mà bạn muốn).
my_integers = [1, 2, 3, 4, 5]
Rất đơn giản, chúng ta có thể tạo 1 array & lưu nó trong my_integer.
Nhưng bạn sẽ tự hỏi: “Làm thế nào để lấy 1 giá trị từ array này?”
Một câu hỏi thú vị.
List
có 1 concept gọi là index. Element đầu tiên sẽ lấy index 0 (zero). Element tiếp theo lấy 1 và cứ như thế.
Để rõ ràng hơn, chúng ta có thể diễn tả array & mỗi element với index của nó.
Sử dụng Python syntax sẽ rất dễ hiểu:
my_integers = [5, 7, 1, 3, 4] print(my_integers[0]) # 5 print(my_integers[1]) # 7 print(my_integers[4]) # 4
Tưởng tượng xem, bạn không muốn lưu trữ các số nguyên, bạn chỉ muốn lưu trữ strings, như danh sách họ tên của những người thân quen. Đoạn code của tôi sẽ như thế này:
relatives_names = [ “Toshiaki”, “Juliana”, “Yuji”, “Bruno”, “Kaio” ] print(relatives_names[4]) # Kaio
Nó sẽ hoạt động tương tự như các số nguyên.
Chúng ta chỉ mới cách hoạt động của
Lists
Nhưng tôi sẽ cho bạn thấy cách thêm 1 element vào data structure
List
(1 item vào 1 list).
Method thông dụng nhất để thêm 1 giá trị mới vào 1
List
là
append
. Cách thức hoạt động như sau:
bookshelf = [] bookshelf.append(“The Effective Engineer”) bookshelf.append(“The 4 Hour Work Week”) print(bookshelf[0]) # The Effective Engineer print(bookshelf[1]) # The 4 Hour Work Week
append
cực kì đơn giản. Bạn chỉ cần áp dụng element như tham số
append
(ví dụ “The Effective Engineer”)
Lists
đã xong. Cùng nghiên cứu data structure khác:
Dictionary: Key-Value Data Structure
Hiện tại, chúng ta đã biết
Lists
được index với các số nguyên. Nhưng chuyện gì sẽ xảy ra nếu chúng ta không muốn sử dụng các số nguyên như các indices? Một số data structure có thể sử dụng là numeric, string hoặc các loại indices khác.
Cùng nghiên cứu về data structure
Dictionary
.
Dictionary
là tập hợp các cặp key-value. Kết quả sẽ ra thế này:
dictionary_example = { “key1”: “value1”, “key2”: “value2”, “key3”: “value3” }
key là index chỉ đến value. Làm thế nào để tiếp cận value
Dictionary
? Hãy sử dụng key.
dictionary_tk = { “name”: “Leandro”, “nickname”: “Tk”, “nationality”: “Brazilian” } print(“My name is %s” %(dictionary_tk[“name”])) # My name is Leandro print(“But you can call me %s” %(dictionary_tk[“nickname”])) # But you can call me Tk print(“And by the way I’m %s” %(dictionary_tk[“nationality”])) # And by the way I’m Brazilian
Tôi đã tạo 1
Dictionary
gồm tên, nickname và quốc tịch. Những attributes này đều là keys
Dictionary
.
Khi nghiên cứu cách tiếp cận
List
bằng index, chúng ta cũng sử dụng indices (keys trong context
Dictionary
) để tiếp cận value lưu trữ trong
Dictionary
.
Trong ví dụ này, tôi đã print 1 đoạn về mình bằng tất cả các giá trị lưu trong
Dictionary
. Khá đơn giản, phải không?
Điều khá hay về
Dictionary
chính là chúng ta có thể sử dụng bất cứ thứ gì làm value. Trong
Dictionary
mà tôi tạo, tôi muốn thêm key “age” & số tuổi nguyên thực sự của mình vào đó:
dictionary_tk = { “name”: “Leandro”, “nickname”: “Tk”, “nationality”: “Brazilian”, “age”: 24 } print(“My name is %s” %(dictionary_tk[“name”])) # My name is Leandro print(“But you can call me %s” %(dictionary_tk[“nickname”])) # But you can call me Tk print(“And by the way I’m %i and %s” %(dictionary_tk[“age”], dictionary_tk[“nationality”])) # And by the way I’m Brazilian
Ở đây, chúng ta có 1 cặp key (tuổi) value (24) bằng string như key và integer như value.
Như những gì đã làm với
Lists
, cùng nghiên cứu cách thêm các elements vào 1
Dictionary
. key chỉ đến 1 value là 1 phần quan trọng tạo nên
Dictionary
. Điều này cũng đúng khi chúng ta đề cập đến việc thêm các elements vào đó:
dictionary_tk = { “name”: “Leandro”, “nickname”: “Tk”, “nationality”: “Brazilian” } dictionary_tk[‘age’] = 24 print(dictionary_tk) # {‘nationality’: ‘Brazilian’, ‘age’: 24, ‘nickname’: ‘Tk’, ‘name’: ‘Leandro’}
Chúng ta chỉ cần chỉ định 1 value vào 1 key
Dictionary
. Không có gì phức tạp, đúng không nhỉ?
(còn tiếp)
Nguồn: TopDev via medium.freecodecamp.org
Hinun97
Ở đâu khó có Hinun
Thành viên BQT
Hiện tại trên thế giới có khá nhiều loại ngôn ngữ lập trình như C , Java , PHP ..v..v.. Trong các loại ngôn ngữ lập trình nền tảng đó thì Python là một trong những ngôn ngữ lập trình mới. Nếu bạn đang tìm kiếm một ngôn ngữ của tương lai thì Python là 1 lựa chọn tốt. Các lý do sau đây sẽ khiến bạn nên sẽ chọn học PythonLý do 1: Python là ngôn ngữ mới và dễ học hơn bất kì ngôn ngữ nào.Lý do 2: Python là ngôn ngữ hàng đầu tại các đất nước trên thế giới nhất là Châu Âu. Và bạn cũng đã biết tương lai Việt Nam sẽ được hội nhập với các nước trên thế giới vậy cho nên nguồn lực cho mã nguồn Python là cực kì nhiều.Vì đa phần các nước châu Âu họ đều sài Python thay cho C.Lý do 3: Python là ngôn ngữ giúp bạn viết được trên đa nền tảng nên ví dụ như lập trình website , lập trình di động và cả lập trình game thì Python đều có thể làm được.Lý do 4: Đảm bảo đây là nội dung đầy đủ và kỹ càng nhất về ngôn ngữ lập trình Python để từ đó bạn có thể áp dụng Python vào các công việc bạn muốn hướng tới hoặc tạo thêm nhiều cơ hội việc làm cho bạn.Nếu có điều kiện thì các bạn hãy mua bài giảng để ủng hộ tác giả & được support kiến thức khi cần. Còn không có điều kiện thì…
Lý do 1: Python là ngôn ngữ mới và dễ học hơn bất kì ngôn ngữ nào.
Lý do 2: Python là ngôn ngữ hàng đầu tại các đất nước trên thế giới nhất là Châu Âu. Và bạn cũng đã biết tương lai Việt Nam sẽ được hội nhập với các nước trên thế giới vậy cho nên nguồn lực cho mã nguồn Python là cực kì nhiều.Vì đa phần các nước châu Âu họ đều sài Python thay cho C.
Lý do 3: Python là ngôn ngữ giúp bạn viết được trên đa nền tảng nên ví dụ như lập trình website , lập trình di động và cả lập trình game thì Python đều có thể làm được.
Lý do 4: Đảm bảo đây là nội dung đầy đủ và kỹ càng nhất về ngôn ngữ lập trình Python để từ đó bạn có thể áp dụng Python vào các công việc bạn muốn hướng tới hoặc tạo thêm nhiều cơ hội việc làm cho bạn.
Nếu có điều kiện thì các bạn hãy mua bài giảng để ủng hộ tác giả & được support kiến thức khi cần. Còn không có điều kiện thì…
Sửa lần cuối:
Khóa học Python từ Zero to Hero
Nội dung bài viết
Keywords searched by users: học dễ thôi lập trình python từ zero
Categories: Chi tiết 31 Học Dễ Thôi Lập Trình Python Từ Zero
See more here: kientrucannam.vn
See more: https://kientrucannam.vn/vn/