Hướng dẫn /n trong python

Bài toán cần xử lý

Viết chương trình tính và hiển thị ra màn hình n giai thừa (n!). Với n là số tự nhiên nhập từ bàn phím.


Kiến thức cần có

  • Hàm input() và hàm print()
  • Cấu trúc lặp trong Python
  • Cấu trúc rẽ nhánh trong Python
  • Biến và kiểu dữ liệu
  • Xử lý ngoại lệ (Exception Handling)

Định dạng đầu vào

  • Gồm một dòng duy nhất chứa số tự nhiên n

Định dạng đầu ra

Gồm một dòng duy nhât hiển thị kết quả n!

Lưu ý:

Nếu n nhỏ hơn 0 thì xuất thông báo: Vui long nhap so tu nhien!

Nếu input nằm ngoài định dạng đầu vào thì xuất thông báo: Dinh dang dau vao khong hop le!


Ví dụ

  • Input 1:
15
  • Output 1:
1307674368000
  • Input 2:
0
  • Output 2:
1
  • Input 3:
-3
  • Output 3:
Vui long nhap so tu nhien!
  • Input 4:
Kteam
  • Output 4:
Dinh dang dau vao khong hop le!

Gợi ý

  • Sử dụng cấu trúc Xử lý ngoại lệ để xử lý các trường hợp gây ra lỗi
  • Đặt toàn bộ chương trình trong khối try.
  • Dùng hàm input() để nhập giá trị n từ bàn phím.
  • Chuyển giá trị mới nhận được sang kiểu số nguyên, vì các giá trị nhận được từ hàm input() mặc định sẽ ở kiểu chuỗi.
  • Sử dụng cấu trúc rẽ nhánh để xử lý trường hợp n âm. Hiển thị thông báo lỗi nếu có.
  • Sử dụng vòng lặp for để duyệt các số từ 1 tới n
    • Tính tích các số
  • Lỗi sẽ phát sinh ở lệnh ép kiểu nếu định dạng đầu vào không hợp lệ. Dùng lệnh except để bắt lỗi:
  • Dùng hàm print() hiển thị thông báo lỗi ra màn hình

Code mẫu

#Khoi lenh co the phat sinh loi
try:
    #Nhap gia tri tu ban phim
    #Ep kieu du lieu sang so nguyen
    n = int(input())
    
    #Su dung cau truc re nhanh xu ly truong hop n < 0
    if n<0:
        print("Vui long nhap so tu nhien!")
    else:
        ketQua = 1
        #Su dung vong lap for duyet cac so tu 1 toi n
        for i in range(1, n+1):
            ketQua *= i 
        print(ketQua)
        
#Khoi lenh duoc thuc thi khi loi xay ra
except:
    print("Dinh dang dau vao khong hop le!")

Kết luận

Dựa trên gợi ý và ví dụ đã được nêu, bạn hoàn toàn có thể tự  viết chương trình tính và hiển thị ra màn hình n giai thừa (n!). Thêm bài giải của bạn vào phần bình luận để được Kteam review code và fix lỗi (nếu có) trong livestream của khóa học này.

Ở bài tiếp theo, chúng ta sẽ cũng nhau học cách viết chương trình TÍNH KẾT QUẢ BIỂU THỨC S(N) = 1 - X + X^2/2! - X^3/3! + … - X^(2N-1)/(2N-1)! + X^(2N)/(2N)!

Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của bạn để phát triển bài viết tốt hơn. Đừng quên " Luyện tập - Thử Thách - Không ngại khó!"


Tải xuống

Project

Nếu việc thực hành theo hướng dẫn không diễn ra suôn sẻ như mong muốn. Bạn cũng có thể tải xuống PROJECT THAM KHẢO ở link bên dưới!

Hướng dẫn /n trong python


Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.

Nội dung chính

  • 1- Yêu cầu đòi hỏi
  • 2- Tạo Project
  • 3- Tạo module đầu tiên của bạn
  • 4- Python Module và Python Package
  • 5- Các ví dụ
  • 6- Tra cứu thư viện Python

Nhóm phát triển của chúng tôi vừa ra mắt website langlearning.net học tiếng Anh, Nga, Đức, Pháp, Việt, Trung, Hàn, Nhật, ... miễn phí cho tất cả mọi người.
Là một website được viết trên công nghệ web Flutter vì vậy hỗ trợ rất tốt cho người học, kể cả những người học khó tính nhất.
Hiện tại website đang tiếp tục được cập nhập nội dung cho phong phú và đầy đủ hơn. Mong các bạn nghé thăm và ủng hộ website mới của chúng tôi.

Nội dung chính

  • 1- Yêu cầu đòi hỏi
  • 2- Tạo Project
  • 3- Tạo module đầu tiên của bạn
  • 4- Python Module và Python Package
  • 5- Các ví dụ
  • 6- Tra cứu thư viện Python
Hãy theo dõi chúng tôi trên Fanpage để nhận được thông báo mỗi khi có bài viết mới. Facebook

1- Yêu cầu đòi hỏi

Đảm bảo rằng máy tính của bạn đã cài đặt Python và một công cụ (IDE) để lập trình Python (Chẳng hạn như PyDev). Nếu không, bạn có thể tham khảo các hướng dẫn dưới đây:

Windows:

Ubuntu

2- Tạo Project

Trên Eclipse chọn:

  • File/New/Other..

Sử dụng "Grammar Version" 3.x (Ngữ pháp phiên bản 3.x):

Chú ý: Ở đây tôi sử dụng "Ngữ pháp phiên bản 3.6", các phiên bản ngữ pháp Python có đôi chút khác biệt, bạn có thể tham khảo thêm tại:

Project đã được tạo ra.

3- Tạo module đầu tiên của bạn

Trên Eclipse chọn:

  • File/New/File

Nhập vào tên file:

  • main.py

Thêm nội dung cho main.py:

main.py



print ("Hello Python!");

x = 5;
y = 10;
z = 20;

print (x + y + z);

Chạy file main.py bằng cách nhấn phải chuột vào nó và chọn:

  • Run As/Python Run

Kết quả nhận được khi chạy main.py:

4- Python Module và Python Package

Trong Python, module có thể hiểu một cách đơn giản là môt file nguồn ( *.py), nó có thể phơi bầy ra các lớp (class), hàm (function) và các biến toàn cục (global variables), mà các module khác có thể sử dụng.

Khi nhập khẩu (import) một file nguồn Python khác. Tên của file được đối xử như là một namespace (Không gian tên)

"Python package" đơn giản là một thư mục chứa các "Python module".

Tạo mới một "package":

Khi bạn tạo một package có tên "org.o7planning.test" sẽ có 3 thư mục được tạo ra là "org", "o7planning", "test", trong mỗi thư mục tạo sẵn một file có tên "__init__.py". Các file "__init__.py" thực chất không có nội dung bên trong, nhưng nó nói với Python rằng hãy đối xử với các thư mục chứa nó như là một "package".

Bạn có thể tạo một module bên trong package, chẳng hạn tôi tạo một module có tên "mymodule.py" trong package "org.o7planning.test":

Và trong một module khác có thể nhập khẩu "mymodule" để sử dụng với cú pháp:


# Nhập khẩu module "mymodule" trong package "org.o7planning.test"

import org.o7planning.test.mymodule

Hoặc nhập nhẩu một class "myclass" trong module "mymodule":


# Nhập khẩu một class nằm trong module mymodule.

from org.o7planning.test.mymodule import myclass

5- Các ví dụ

math là một module được có sẵn của Python. Nó chứa các hàm toán học. Để sử dụng nó bạn cần phải nhập khẩu (import) nó. Dưới đây là một vài hàm của module này.

Hàm Mô tả
math.floor(x) Trả về phần nguyên của x như một kiểu float, là só nguyên lớn nhất và nhỏ hơn hoặc bằng x.
math.fabs(x) Trả về giá trị tuyệt đối của x.

Tra cứu thêm về math:

importExample1.py


# Nhập khẩu module math để sử dụng.
import math 

# math.floor(x)
# Hàm này trả về số nguyên (interger) lớn nhất và nhỏ hơn hoặc bằng x.
print ("math.floor(100.12) : ", math.floor( 100.12) )

# Hàm trả về giá trị tuyệt đối (absolute value).
print ("math.fabs(-100.72) : ", math.fabs( -100.72) )

Tạo một module với tên "mymodule" và nằm trong package "org.o7planning.test". Trong mymodule định nghĩa một hàm có tên sayHello.

Chú ý: Trong bài hướng dẫn này tôi không giới thiệu chi tiết về hàm. Nếu bạn là một người mới bắt đầu với Python, bạn không cần lo lắng về điều đó.

mymodule.py


# Định nghĩa một hàm, truyền vào tên người
# và trả về một chuỗi.
def sayHello(name) :
    return "Hello "+ name

# Sử dụng hàm sayHello ở trên.
text = sayHello("Python")  

print(text)

Chạy mymodule:

Trong một module khác bạn muốn sử dụng hàm sayHello của "mymodule" bạn cần phải nhập khẩu module này, hoặc chỉ nhập khẩu hàm sayHello của module này.

Import module:

importExample2.py


# Import module.
import org.o7planning.test.mymodule
 
# Gọi hàm sayHello của mymodule:
greeting = org.o7planning.test.mymodule.sayHello("Python")


print(greeting)

Import function:

importExample3.py


# Nhập khẩu hàm sayHello.
from org.o7planning.test.mymodule import sayHello

# Gọi hàm sayHello của mymodule:
greeting =  sayHello("Python")
 

print(greeting)

6- Tra cứu thư viện Python

Khi làm việc với Python, bạn cần các tài liệu để có thể tra cứu các thư viện Python, và cách sử dụng chúng. Các tài liệu này được giới thiệu trên trang chủ của Python, các tài liệu này rất đầy đủ và chi tiết cho từng phiên bản khác nhau của Python.