Hàm |
Khái niệm hàm trong ngôn ngữ lập trình thì mình không phải giới thiệu lại. Bạn chỉ cần hiểu đơn giản hàm là một hộp đen thực hiện một công việc nào đó. Với đầu vào như thế nào thì sẽ được đầu ra tương ứng. Ví dụ, đầu vào của hộp đen số nguyên tố là 11 sẽ có kết quả là True, còn đầu vào là 12 sẽ có đầu ra là False. Vậy, chúng ta sẽ đi tìm hiểu cách chế tạo hộp đen bằng Python nhé.
Số nguyên tố
Ta sẽ viết lại chương trình số nguyên tố của bài trước. Hàm kiểm tra một số nguyên tố sẽ trả về True nếu số cần kiểm tra đúng là số nguyên tố, ngược lại, trả về là False. Ta quan sát hàm như sau:
def isPrimerNumber(num):
if num < 2:
return False
elif num == 2:
return True
else:
isPrimeNum = True;
for i in range(2, num):
if num % i == 0:
isPrimeNum = False;
break
if isPrimeNum == True:
return True
else:
return False
- Từ khóa def: dùng để khai báo hàm. Trong Python hàm có thể trả về giá trị hoặc không, nhưng ta không quan tâm đến kiểu giá trị trả về vì trong hàm sẽ tự động nhận biết dữ liệu trả về.
- Tiếp theo là tên hàm: ở đây là isPrimerNumber , bạn nên đặt một cái tên phù hợp.
- Tham số num chính là số mà ta cần kiểm tra. Hàm có thể không có hoặc có nhiều tham số.
- Nội dung của hàm hoạt động giống như bài trước (thực ra là mình copy từ bài trước.
Sau khi định nghĩa hàm xong, ta sẽ gọi hàm và truyền giá trị thực sự cần kiểm tra.
number = int(input("Nhap vao mot so nguyen: "))
result = isPrimerNumber(number)
if result == True:
print(number, " la so nguyen to")
else:
print(number, " khong la so nguyen to")
Trong đoạn code này, chúng ta thực hiện 3 việc:
- Nhập dữ liệu từ bàn phím và gán vào biến number
- Gọi hàm (dòng result = isPrimerNumber(number)), với số number vừa nhập từ bàn phím ta sẽ kiểm tra xem nó là nguyên tố hay không. Kết quả tra về được gán vào biến result.
- Kiểm tra giá trị của biến result và đưa ra kết luận number là số nguyên tố hay không.
Các bạn thấy đơn giản chứ? File mã nguồn ở đây nhé.
Số hoàn hảo
Ta viết lại chương trình kiểm tra số hoàn hảo dưới dạng hàm. Bạn xem đoạn mã kiểm tra xem một số có phải là số hoàn hảo hay không sau đây nhé:
def isPerfectNumber(num):
if num <= 1:
return False;
else:
sumDivision = 0
for i in range(1, num):
if num % i == 0:
sumDivision += i #sumDivision = sumDivision + i
return True if sumDivision == num else False
Ta thấy, về hình thức cũng giống như hàm kiểm tra số nguyên tố ở trên. So với chương trình của bài trước ta thấy ở dòng code cuối cùng có điều đặc biệt. Thông thường ta sẽ viết như sau:
if sumDivision == num:
return True
else:
return False
Ta thấy, 4 dòng lệnh trên rất đơn giản. Vì vậy ta sử dụng biểu thức điều kiện như trong dòng cuối cùng. Ta nhập một giá trị và gọi hàm như sau:
number = int(input("Nhap vao mot so: "))
result = isPerfectNumber(number);
if result:
print(number, " la so hoan hao")
else:
print(number, " khong la so hoan hao")
Như vậy, ta đã viết được chương trình kiểm tra một số có phải là số hoàn hảo hay không dưới dạng hàm. Bạn có thể xem code chi tiết tại đây.
def isSquareNumber(num):
if number <= 0:
return False
else:
isSquareNum = False
for i in range(1, number + 1):
if i * i == number:
isSquareNum = True
break
if isSquareNum == True:
return True
else:
return False
Chúng ta định nghĩa hàm def isSquareNumber(num)và còn nội dung chương trình thì giữ nguyên nguyên như bài trước. Bây giờ, ta sẽ nhập giá trị và gọi hàm để kiểm tra một số có phải là số chính phương không nhé.
number = int(input("Nhap vao mot so nguyen:"))
result = isSquareNumber(number)
if result == True:
print( number, " la so chinh phuong")
else:
print(number, " khong phai la so chinh phuong")
Kết quả của hàm isSquareNumber trả True nếu number đúng là số chính phương, ngược lại, nó trả về False. Bạn xem code chi tiết tại đây nhé.
Số chính phương
Tương tự như hai ví dụ trên, mình sẽ viết lại chương trình để kiểm tra một số có phải là số chính phương hay không? Sau đây là đoạn mã hàm kiểm tra một số có phải là số chính phương hay không:def isSquareNumber(num):
if number <= 0:
return False
else:
isSquareNum = False
for i in range(1, number + 1):
if i * i == number:
isSquareNum = True
break
if isSquareNum == True:
return True
else:
return False
Chúng ta định nghĩa hàm def isSquareNumber(num)và còn nội dung chương trình thì giữ nguyên nguyên như bài trước. Bây giờ, ta sẽ nhập giá trị và gọi hàm để kiểm tra một số có phải là số chính phương không nhé.
number = int(input("Nhap vao mot so nguyen:"))
result = isSquareNumber(number)
if result == True:
print( number, " la so chinh phuong")
else:
print(number, " khong phai la so chinh phuong")
Kết quả của hàm isSquareNumber trả True nếu number đúng là số chính phương, ngược lại, nó trả về False. Bạn xem code chi tiết tại đây nhé.
Không có nhận xét nào:
Đăng nhận xét