Thứ tư, 16/11/2016 | 00:00 GMT+7

Cách tạo chương trình máy tính bằng Python 3

Ngôn ngữ lập trình Python là một công cụ tuyệt vời để sử dụng khi làm việc với các con số và đánh giá các biểu thức toán học. Chất lượng này được dùng để tạo ra các chương trình hữu ích.

Hướng dẫn này trình bày một bài tập học tập để giúp bạn tạo một chương trình máy tính dòng lệnh đơn giản bằng Python 3. Mặc dù ta sẽ xem xét một cách hữu ích để tạo chương trình này, nhưng có nhiều cơ hội để cải thiện mã và tạo ra một máy tính mạnh mẽ hơn.

Ta sẽ sử dụng toán tử toán học , biến , câu lệnh điều kiện , hàm và xử lý đầu vào của user để tạo máy tính của ta .

Yêu cầu

Đối với hướng dẫn này, bạn nên cài đặt Python 3 trên máy tính local của bạn và cài đặt môi trường lập trình trên máy. Nếu bạn cần cài đặt Python hoặc cài đặt môi trường, bạn có thể làm như vậy theo hướng dẫn thích hợp cho hệ điều hành của bạn .

Bước 1 - Nhắc user nhập liệu

Máy tính hoạt động tốt nhất khi con người cung cấp các phương trình để máy tính giải. Ta sẽ bắt đầu viết chương trình của bạn tại thời điểm con người nhập các số mà họ muốn máy tính làm việc.

Để làm điều này, ta sẽ sử dụng hàm input() hợp sẵn của Python chấp nhận đầu vào do user tạo từ bàn phím. Bên trong dấu ngoặc đơn của hàm input() ta có thể truyền một chuỗi để nhắc user . Ta sẽ chỉ định đầu vào của user cho một biến.

Đối với chương trình này, ta muốn user nhập hai số, vì vậy hãy có dấu nhắc chương trình cho hai số. Khi yêu cầu đầu vào, ta nên bao gồm một khoảng trắng ở cuối chuỗi để có một khoảng trống giữa đầu vào của user và chuỗi nhắc.

number_1 = input('Enter your first number: ') number_2 = input('Enter your second number: ') 

Sau khi viết xong hai dòng, ta nên lưu chương trình trước khi chạy. Ta có thể gọi chương trình này là calculator.py và trong cửa sổ terminal , ta có thể chạy chương trình trong môi trường lập trình của bạn bằng cách sử dụng lệnh python calculator.py . Bạn có thể nhập vào cửa sổ terminal theo từng dấu nhắc .

Output
Enter your first number: 5 Enter your second number: 7

Nếu bạn chạy chương trình này một vài lần và thay đổi đầu vào của bạn , bạn sẽ nhận thấy rằng bạn có thể nhập bất kỳ thứ gì bạn muốn khi được yêu cầu , bao gồm từ, ký hiệu, khoảng trắng hoặc chỉ phím enter. Điều này là do input() nhận dữ liệu dưới dạng chuỗi và không biết rằng ta đang tìm kiếm một số.

Ta muốn sử dụng một số trong chương trình này vì 2 lý do: 1) để cho phép chương trình thực hiện các phép tính toán học và 2) để xác nhận đầu vào của user là một chuỗi số.

Tùy thuộc vào nhu cầu của ta về máy tính, ta có thể cần chuyển đổi chuỗi có trong hàm input() thành số nguyên hoặc số thực. Đối với ta , các số nguyên phù hợp với mục đích của ta , vì vậy ta sẽ bọc hàm input() trong hàm int() để chuyển đổi đầu vào thành kiểu dữ liệu số nguyên .

Calculator.py
number_1 = int(input('Enter your first number: ')) number_2 = int(input('Enter your second number: ')) 

Bây giờ, nếu ta nhập hai số nguyên, ta sẽ không gặp lỗi:

Output
Enter your first number: 23 Enter your second number: 674

Tuy nhiên, nếu ta nhập chữ cái, ký hiệu hoặc bất kỳ số không phải số nguyên nào khác, ta sẽ gặp lỗi sau:

Output
Enter your first number: sammy Traceback (most recent call last): File "testing.py", line 1, in <module> number_1 = int(input('Enter your first number: ')) ValueError: invalid literal for int() with base 10: 'sammy'

Lúc này, ta đã cài đặt hai biến để lưu trữ dữ liệu đầu vào của user dưới dạng kiểu dữ liệu số nguyên. Bạn cũng có thể thử nghiệm với việc chuyển đổi đầu vào thành float.

Bước 2 - Thêm toán tử

Trước khi chương trình của ta hoàn tất, ta sẽ thêm tổng cộng 4 toán tử toán học : + cho phép cộng, - cho phép trừ, * cho phép nhân và / cho phép chia.

Khi ta xây dựng chương trình của bạn , ta muốn đảm bảo mỗi phần hoạt động chính xác, vì vậy ở đây ta sẽ bắt đầu với việc cài đặt phần bổ sung. Ta sẽ thêm hai số trong một hàm in để người sử dụng máy tính có thể xem kết quả.

Calculator.py
number_1 = int(input('Enter your first number: ')) number_2 = int(input('Enter your second number: '))  print(number_1 + number_2) 

Hãy chạy chương trình và nhập hai số khi được yêu cầu đảm bảo rằng nó đang hoạt động như ta mong đợi:

Output
Enter your first number: 8 Enter your second number: 3 11

Kết quả kết quả cho ta thấy rằng chương trình đang hoạt động chính xác, vì vậy hãy thêm một số ngữ cảnh nữa để user được thông báo đầy đủ trong suốt thời gian chạy của chương trình. Để thực hiện việc này, ta sẽ sử dụng trìnhđịnh dạng chuỗi để giúp ta định dạng đúng văn bản của bạn và cung cấp phản hồi. Ta muốn user nhận được xác nhận về các số họ đang nhập và toán tử đang được sử dụng cùng với kết quả được tạo ra.

Calculator.py
number_1 = int(input('Enter your first number: ')) number_2 = int(input('Enter your second number: '))  print('{} + {} = '.format(number_1, number_2)) print(number_1 + number_2) 

Bây giờ, khi ta chạy chương trình, ta sẽ có thêm kết quả cho phép user xác nhận biểu thức toán học đang được chương trình thực hiện.

Output
Enter your first number: 90 Enter your second number: 717 90 + 717 = 807

Sử dụng bộ định dạng chuỗi cung cấp cho user nhiều phản hồi hơn.

Đến đây, bạn có thể thêm phần còn lại của toán tử vào chương trình với cùng định dạng mà ta đã sử dụng để bổ sung:

Calculator.py
number_1 = int(input('Enter your first number: ')) number_2 = int(input('Enter your second number: '))  # Addition print('{} + {} = '.format(number_1, number_2)) print(number_1 + number_2)  # Subtraction print('{} - {} = '.format(number_1, number_2)) print(number_1 - number_2)  # Multiplication print('{} * {} = '.format(number_1, number_2)) print(number_1 * number_2)  # Division print('{} / {} = '.format(number_1, number_2)) print(number_1 / number_2) 

Ta đã thêm các toán tử còn lại, - , */ vào chương trình ở trên. Nếu ta chạy chương trình tại thời điểm này, chương trình sẽ thực hiện tất cả các thao tác trên. Tuy nhiên, ta muốn giới hạn chương trình chỉ thực hiện một thao tác tại một thời điểm. Để làm điều này, ta sẽ sử dụng các câu lệnh điều kiện.

Bước 3 - Thêm câu lệnh điều kiện

Với chương trình calculator.py của ta , ta muốn user có thể chọn trong số các toán tử khác nhau. Vì vậy, hãy bắt đầu bằng cách thêm một số thông tin ở đầu chương trình, cùng với một lựa chọn để thực hiện, để người đó biết phải làm gì.

Ta sẽ viết một chuỗi trên một vài dòng khác nhau bằng cách sử dụng dấu ngoặc kép:

''' Please type in the math operation you would like to complete: + for addition - for subtraction * for multiplication / for division ''' 

Ta đang sử dụng từng ký hiệu toán tử để user lựa chọn, vì vậy nếu user muốn thực hiện phép chia, họ sẽ nhập / . Tuy nhiên, ta có thể chọn bất kỳ ký hiệu nào ta muốn, như 1 for addition hoặc b for subtraction .

Bởi vì ta đang yêu cầu user nhập liệu, ta muốn sử dụng hàm input() . Ta sẽ đặt chuỗi bên trong hàm input() và chuyển giá trị của đầu vào đó cho một biến, mà ta sẽ đặt tên là operation .

Calculator.py
operation = input(''' Please type in the math operation you would like to complete: + for addition - for subtraction * for multiplication / for division ''')  number_1 = int(input('Enter your first number: ')) number_2 = int(input('Enter your second number: '))  print('{} + {} = '.format(number_1, number_2)) print(number_1 + number_2)  print('{} - {} = '.format(number_1, number_2)) print(number_1 - number_2)  print('{} * {} = '.format(number_1, number_2)) print(number_1 * number_2)  print('{} / {} = '.format(number_1, number_2)) print(number_1 / number_2) 

Đến đây, nếu ta chạy chương trình của bạn , không có vấn đề gì ta nhập ở dấu nhắc đầu tiên, vì vậy hãy thêm các câu lệnh điều kiện của ta vào chương trình. Bởi vì như thế nào, ta đã có cấu trúc chương trình của ta , if tuyên bố sẽ là nơi bổ sung được thực hiện, sẽ có 3 khác-nếu hoặc elif báo cáo cho mỗi nhà khai thác khác, và else tuyên bố sẽ được đưa ra để xử lý lỗi nếu người đó không nhập ký hiệu toán tử.

Calculator.py
operation = input(''' Please type in the math operation you would like to complete: + for addition - for subtraction * for multiplication / for division ''')  number_1 = int(input('Enter your first number: ')) number_2 = int(input('Enter your second number: '))  if operation == '+':     print('{} + {} = '.format(number_1, number_2))     print(number_1 + number_2)  elif operation == '-':     print('{} - {} = '.format(number_1, number_2))     print(number_1 - number_2)  elif operation == '*':     print('{} * {} = '.format(number_1, number_2))     print(number_1 * number_2)  elif operation == '/':     print('{} / {} = '.format(number_1, number_2))     print(number_1 / number_2)  else:     print('You have not typed a valid operator, please run the program again.') 

Để xem qua chương trình này, trước tiên nó sẽ nhắc user nhập một biểu tượng hoạt động. Ta sẽ nói rằng user nhập * để nhân lên. Tiếp theo, chương trình yêu cầu nhập 2 số và user nhập 5840 . Đến đây, chương trình hiển thị phương trình thực hiện và sản phẩm.

Output
Please type in the math operation you would like to complete: + for addition - for subtraction * for multiplication / for division * Please enter the first number: 58 Please enter the second number: 40 58 * 40 = 2320

Do cách ta cấu trúc chương trình, nếu user nhập % khi được yêu cầu thao tác ở dấu nhắc đầu tiên, họ sẽ không nhận được phản hồi để thử lại cho đến khi nhập số. Bạn có thể cần xem xét các tùy chọn khả thi khác để xử lý các tình huống khác nhau.

Đến đây, ta có một chương trình đầy đủ chức năng, nhưng ta không thể thực hiện thao tác thứ hai hoặc thứ ba mà không chạy lại chương trình, vì vậy hãy thêm một số chức năng khác vào chương trình.

Bước 4 - Xác định chức năng

Để xử lý khả năng thực hiện chương trình nhiều lần như user muốn, ta sẽ xác định một số hàm. Đầu tiên hãy đặt khối mã hiện có của ta vào một hàm. Ta sẽ đặt tên cho hàm là calculate() và thêm một lớp thụt lề bổ sung trong chính hàm. Để đảm bảo chương trình chạy, ta cũng sẽ gọi hàm ở cuối file của ta .

Calculator.py
# Define our function def calculate():     operation = input(''' Please type in the math operation you would like to complete: + for addition - for subtraction * for multiplication / for division ''')      number_1 = int(input('Please enter the first number: '))     number_2 = int(input('Please enter the second number: '))      if operation == '+':         print('{} + {} = '.format(number_1, number_2))         print(number_1 + number_2)      elif operation == '-':         print('{} - {} = '.format(number_1, number_2))         print(number_1 - number_2)      elif operation == '*':         print('{} * {} = '.format(number_1, number_2))         print(number_1 * number_2)      elif operation == '/':         print('{} / {} = '.format(number_1, number_2))         print(number_1 / number_2)      else:         print('You have not typed a valid operator, please run the program again.')  # Call calculate() outside of the function calculate() 

Tiếp theo, hãy tạo một hàm thứ hai gồm nhiều câu lệnh điều kiện hơn. Trong khối mã này, ta muốn cho user lựa chọn xem họ có muốn tính toán lại hay không. Ta có thể căn cứ vào điều kiện này trong các câu lệnh điều kiện của máy tính, nhưng trong trường hợp này, ta sẽ chỉ có một if , một elif và một lệnh else để xử lý lỗi.

Ta sẽ đặt tên lại cho hàm này again() , và thêm nó vào bên dưới khối mã def calculate(): của ta .

Calculator.py
...  # Define again() function to ask user if they want to use the calculator again def again():      # Take input from user     calc_again = input(''' Do you want to calculate again? Please type Y for YES or N for NO. ''')      # If user types Y, run the calculate() function     if calc_again == 'Y':         calculate()      # If user types N, say good-bye to the user and end the program     elif calc_again == 'N':         print('See you later.')      # If user types another key, run the function again     else:         again()  # Call calculate() outside of the function calculate() 

Mặc dù có một số xử lý lỗi với câu lệnh else ở trên, nhưng ta có thể làm tốt hơn một chút để chấp nhận, chẳng hạn như chữ thường yn cùng với chữ hoa YN Để làm điều đó, hãy thêm hàm chuỗi str.upper() :

Calculator.py
... def again():     calc_again = input(''' Do you want to calculate again? Please type Y for YES or N for NO. ''')      # Accept 'y' or 'Y' by adding str.upper()     if calc_again.upper() == 'Y':         calculate()      # Accept 'n' or 'N' by adding str.upper()     elif calc_again.upper() == 'N':         print('See you later.')      else:         again() ... 

Đến đây, ta nên thêm hàm again() vào cuối hàm calculate() để có thể kích hoạt mã hỏi user xem họ có muốn tiếp tục hay không.

Calculator.py
def calculate():     operation = input(''' Please type in the math operation you would like to complete: + for addition - for subtraction * for multiplication / for division ''')      number_1 = int(input('Please enter the first number: '))     number_2 = int(input('Please enter the second number: '))      if operation == '+':         print('{} + {} = '.format(number_1, number_2))         print(number_1 + number_2)      elif operation == '-':         print('{} - {} = '.format(number_1, number_2))         print(number_1 - number_2)      elif operation == '*':         print('{} * {} = '.format(number_1, number_2))         print(number_1 * number_2)      elif operation == '/':         print('{} / {} = '.format(number_1, number_2))         print(number_1 / number_2)      else:         print('You have not typed a valid operator, please run the program again.')      # Add again() function to calculate() function     again()  def again():     calc_again = input(''' Do you want to calculate again? Please type Y for YES or N for NO. ''')      if calc_again.upper() == 'Y':         calculate()     elif calc_again.upper() == 'N':         print('See you later.')     else:         again()  calculate() 

Như vậy, bạn có thể chạy chương trình của bạn với python calculator.py trong cửa sổ terminal của bạn và bạn có thể tính toán bao nhiêu lần tùy ý.

Bước 5 - Cải thiện mã

Bây giờ ta có một chương trình tốt đẹp, đầy đủ chức năng. Tuy nhiên, bạn có thể làm nhiều hơn nữa để cải thiện mã này. Bạn có thể thêm một chức năng chào mừng, chẳng hạn, chào mừng mọi người đến với chương trình ở đầu mã của chương trình, như sau:

def welcome():     print(''' Welcome to Calculator ''') ... # Don’t forget to call the function welcome() calculate() 

Có cơ hội để giới thiệu nhiều hơn về xử lý lỗi trong suốt chương trình. Đối với người mới bắt đầu, bạn có thể đảm bảo chương trình tiếp tục chạy ngay cả khi user gõ plankton khi được yêu cầu một số. Vì chương trình hiện đang hoạt động, nếu number_1number_2 không phải là số nguyên, user sẽ gặp lỗi và chương trình sẽ ngừng chạy. Ngoài ra, đối với các trường hợp khi user chọn toán tử chia ( / ) và nhập 0 cho số thứ hai của họ ( number_2 ), user sẽ nhận được ZeroDivisionError: division by zero . Đối với điều này, bạn có thể cần sử dụng xử lý ngoại lệ với câu lệnh try ... except .

Ta tự giới hạn ở 4 toán tử, nhưng bạn có thể thêm các toán tử bổ sung, như trong:

...     operation = input(''' Please type in the math operation you would like to complete: + for addition - for subtraction * for multiplication / for division ** for power % for modulo ''') ... # Don’t forget to add more conditional statements to solve for power and modulo 

Ngoài ra, bạn có thể cần viết lại một phần của chương trình bằng một câu lệnh lặp.

Có nhiều cách để xử lý lỗi và sửa đổi, cải thiện từng và mọi dự án mã hóa. Điều quan trọng cần nhớ là không có một cách chính xác duy nhất để giải quyết một vấn đề mà ta đang trình bày.

Kết luận

Hướng dẫn này trình bày một cách tiếp cận khả thi để xây dựng một máy tính trên dòng lệnh. Sau khi hoàn thành hướng dẫn này, bạn có thể sửa đổi và cải thiện mã và làm việc trên các dự án khác yêu cầu user nhập vào dòng lệnh.

Ta muốn xem các giải pháp của bạn cho dự án máy tính dòng lệnh đơn giản này! Vui lòng đăng dự án máy tính của bạn trong phần comment bên dưới.

Tiếp theo, bạn có thể cần tạo một trò chơi dựa trên văn bản như tic-tac-toe hoặc oẳn tù tì.


Tags:

Các tin liên quan

Cách tạo chương trình máy tính bằng Python 3
2016-11-16
Cách sử dụng các phương thức danh sách trong Python 3
2016-11-11
Các hàm Python 3 tích hợp để làm việc với các số
2016-11-08
Cách vẽ dữ liệu trong Python 3 bằng matplotlib
2016-11-07
Hiểu danh sách trong Python 3
2016-11-02
Cách làm Toán bằng Python 3 với Toán tử
2016-11-01
Giới thiệu về các hàm chuỗi trong Python 3
2016-11-01
Giới thiệu về các hàm chuỗi trong Python 3
2016-11-01
Giới thiệu về các hàm chuỗi trong Python 3
2016-11-01
Cách sử dụng bộ định dạng chuỗi trong Python 3
2016-10-14