Python và Ruby là hai ngôn ngữ lập trình phổ biến, mỗi ngôn ngữ có những điểm mạnh và cách tiếp cận khác nhau để giải quyết vấn đề lập trình. Trong bài viết này, chúng tôi sẽ so sánh Ruby và Python qua một loạt các ví dụ cụ thể, giúp bạn hiểu rõ hơn về cú pháp, quy tắc và cách hoạt động của từng ngôn ngữ.
1. Cách Khai Báo Biến
Ruby:
ruby
name = "Ruby"
age = 25
Python:
python
name = "Python"
age = 25
Như bạn thấy, Python không yêu cầu từ khóa cụ thể nào để khai báo biến; chỉ cần gán giá trị là đủ.
2. Khai Báo Hàm
Ruby:
ruby
def greet(name)
"Hello, #{name}!"
end
puts greet("Ruby")
Python:
python
def greet(name):
return f"Hello, {name}!"
print(greet("Python"))
Python sử dụng từ khóa def
với dấu thụt lề để xác định khối lệnh mà không cần từ khóa end
.
3. Câu Điều Kiện
Ruby:
ruby
if age > 18
puts "Adult"
else
puts "Minor"
end
Python:
python
if age > 18:
print("Adult")
else:
print("Minor")
Cú pháp điều kiện của Python yêu cầu sử dụng dấu :
để bắt đầu khối và thụt lề để xác định lệnh.
4. Vòng Lặp
Ruby:
ruby
(1..5).each do |i|
puts i
end
Python:
python
for i in range(1, 6):
print(i)
Python sử dụng hàm range()
để tạo dãy số mà không cần khối do ... end
.
5. Mảng và Hash
Ruby:
ruby
arr = [1, 2, 3]
hash = {name: "Ruby", age: 25}
Python:
python
arr = [1, 2, 3]
hash = {"name": "Python", "age": 25}
Trong Python, Hash được gọi là dict
, sử dụng dấu ngoặc {}
và dấu :
để thiết lập giá trị cho key.
6. Block
Ruby:
ruby
[1, 2, 3].map { |x| x * 2 }
Python:
python
list(map(lambda x: x * 2, [1, 2, 3]))
Python không hỗ trợ block như Ruby, thay vào đó, bạn có thể sử dụng hàm lambda
hoặc định nghĩa hàm.
7. Khai Báo Lớp
Ruby:
ruby
class Person
attr_accessor :name
def initialize(name)
@name = name
end
end
person = Person.new("Ruby")
puts person.name
Python:
python
class Person:
def __init__(self, name):
self.name = name
person = Person("Python")
print(person.name)
Lớp trong Python được khai báo với từ khóa class
, và hàm khởi tạo được định nghĩa bằng __init__
.
8. Xử lý Ngoại Lệ
Ruby:
ruby
begin
result = 10 / 0
rescue ZeroDivisionError => e
puts "Error: #{e.message}"
end
Python:
python
try:
result = 10 / 0
except ZeroDivisionError as e:
print(f"Error: {e}")
Python sử dụng cú pháp try-except
mà không cần từ khóa begin
hay end
.
9. Kiểm Tra Giá Trị nil
hoặc None
Ruby:
ruby
value = nil
puts "Value is nil" if value.nil?
Python:
python
value = None
if value is None:
print("Value is None")
Ruby sử dụng nil
và phương thức .nil?
, trong khi Python dùng None
và chỉ cần so sánh với is
.
10. Toán Tử 3 Ngôi
Ruby:
ruby
result = age > 18 ? "Adult" : "Minor"
Python:
python
result = "Adult" if age > 18 else "Minor"
Python có toán tử 3 ngôi nhưng cú pháp lại khác một chút so với Ruby.
Kết Luận
Việc lựa chọn giữa Ruby và Python phụ thuộc vào dự án cụ thể và sở thích cá nhân của từng lập trình viên. Hy vọng qua bài viết này, bạn đã có cái nhìn tổng quan và rõ ràng hơn về sự khác biệt giữa hai ngôn ngữ lập trình này.
Bên cạnh những điểm so sánh trên, còn rất nhiều khía cạnh khác để khám phá khi làm việc với Ruby và Python. Nếu bạn có câu hỏi hoặc muốn tìm hiểu thêm về một chủ đề cụ thể nào đó trong hai ngôn ngữ này, hãy để lại ý kiến cho chúng tôi biết.
source: viblo