Trắc nghiệm trắc nghiệm Python

Ngôn ngữ lập trình Python cung cấp khung Giao diện người dùng đồ họa (GUI) tiêu chuẩn được gọi là Tkinter, được sử dụng để phát triển các ứng dụng GUI nhanh chóng và dễ dàng. Trong hướng dẫn sau, chúng ta sẽ phát triển một trò chơi Trắc nghiệm trắc nghiệm đơn giản bằng Python với sự trợ giúp của GUI. Chúng tôi sẽ sử dụng khung Tkinter GUI để tạo một bài kiểm tra

Vậy hãy bắt đầu

Các bước tạo Trò chơi đố vui MCQ bằng Python

Sau đây là các bước để tạo Trò chơi đố vui trắc nghiệm bằng Python

Bước 1. Chúng tôi sẽ tạo tệp JSON để lưu trữ dữ liệu

Bước 2. Chúng tôi sẽ tạo GUI bằng cách sử dụng khung Tkinter

Bây giờ chúng ta hãy hiểu các bước trên

Tạo tệp JSON

Để tạo Trò chơi đố vui trắc nghiệm, chúng tôi sẽ cần một số dữ liệu. Chúng ta có thể định nghĩa dữ liệu này trong tệp JSON, được gọi là dữ liệu. json, với dữ liệu JSON là các cặp tên/giá trị và bao gồm một mảng các giá trị. Dữ liệu này sẽ đại diện cho các câu hỏi có câu trả lời cùng với nhiều lựa chọn

Chúng ta hãy xem xét dữ liệu mẫu sau cho bài kiểm tra như hình bên dưới

Tập tin. dữ liệu. json

Giải trình

Trong tệp JSON ở trên, chúng tôi đã lưu trữ dữ liệu ở dạng cặp tên/giá trị cùng với mảng giá trị. Như chúng tôi có thể quan sát, chúng tôi đã bao gồm các câu hỏi với câu trả lời của họ và các tùy chọn khác nhau để chọn từ

Bây giờ, chúng ta hãy tạo Giao diện người dùng đồ họa (GUI) trong bước tiếp theo

Tạo GUI bằng Tkinter

Bây giờ chúng ta sẽ tạo GUI bằng cách sử dụng khung Tkinter trong Python. Đây là một số bước mà chúng tôi sẽ làm theo

Bước 1. Nhập mô-đun. Tkinter và JSON

Bước 2. Tạo cửa sổ chính (vùng chứa) của ứng dụng

Bước 3. Thêm widget để hiển thị dữ liệu

Bước 4. Thêm các chức năng cho nút

Bước 5. Sử dụng dữ liệu trong bài kiểm tra

Ghi chú. Cả tệp Python và JSON sẽ được tạo trong cùng một thư mục được xác định ở trên

Bây giờ chúng tôi đã tạo tệp JSON để lưu trữ dữ liệu, chúng tôi sắp tạo một tệp python chứa chương trình cho bài kiểm tra

Nhập các mô-đun

Chúng tôi sẽ bắt đầu bằng cách nhập các mô-đun cần thiết cho dự án. Trong trường hợp này, chúng tôi đang nhập khung Tkinter và mô-đun JSON

Chúng ta hãy xem xét đoạn mã sau thể hiện điều tương tự

Tập tin. myQuiz. py

Giải trình

Trong đoạn mã trên, chúng tôi đã nhập mọi thứ từ tkinter cùng với mô-đun json

Tạo cửa sổ chính của ứng dụng

Bây giờ chúng tôi đã nhập các mô-đun cần thiết, chúng tôi sẽ tạo Cửa sổ chính của ứng dụng bằng lớp Tk

Chúng ta hãy xem xét đoạn mã sau thể hiện điều tương tự

Tập tin. myQuiz. py

Giải trình

Trong đoạn mã trên, chúng tôi đã khởi tạo lớp Tk của mô-đun tkinter để tạo cửa sổ GUI. Chúng tôi cũng đã đặt kích thước và tiêu đề của cửa sổ GUI này bằng cách sử dụng các hàm hình học () và tiêu đề ()

Tạo các thành phần của GUI

Bây giờ chúng ta sẽ định nghĩa một lớp nơi chúng ta có thể tạo các thành phần của GUI và thêm các chức năng cho chúng

Chúng ta sẽ bắt đầu bằng cách định nghĩa phương thức __init__() mà chúng ta sẽ sử dụng để khởi tạo một đối tượng mới của lớp. Trong phương thức này, chúng tôi sẽ đặt số lượng câu hỏi thành 0 và khởi tạo tất cả các phương thức được yêu cầu để hiển thị nội dung và cung cấp các chức năng

Bây giờ chúng ta hãy xem xét đoạn mã sau để hiểu tương tự

Tập tin. myQuiz. py

Giải trình

Trong đoạn mã sau, chúng tôi đã định nghĩa một lớp là myQuiz. Trong lớp này, chúng ta đã định nghĩa phương thức __init__() để khởi tạo các hàm và thuộc tính cho dự án. Chúng tôi đã bắt đầu bằng cách đặt giá trị của số câu hỏi thành 0 và gán cho câu hỏi hàm displayQuestion() để cập nhật sau. Sau đó, chúng tôi đã khởi tạo thuộc tính optSelected chứa giá trị số nguyên được sử dụng cho tùy chọn đã chọn trong một câu hỏi. Sau đó, chúng tôi đã hiển thị nút radio và các tùy chọn cho câu hỏi hiện tại và nút tiếp theo và thoát. Sau đó, chúng tôi đã xác định thuộc tính để lưu trữ số lượng câu hỏi. Cuối cùng, chúng ta đã khởi tạo thuộc tính để giữ bộ đếm các câu trả lời đúng

Bây giờ chúng ta hãy xác định một phương thức khác cho phép chúng ta hiển thị kết quả. Phương pháp này sẽ đếm số câu trả lời đúng và sai và sau đó hiển thị chúng ở cuối dưới dạng hộp thông báo

Đây là đoạn mã thể hiện điều tương tự

Tập tin. myQuiz. py

Giải trình

Trong đoạn mã trên, chúng ta đã định nghĩa phương thức là displayResult(). Sau đó chúng tôi đã tính toán giá trị cho số đếm sai. Sau đó, chúng tôi đã tính tỷ lệ phần trăm câu trả lời đúng và cuối cùng, hiển thị hộp thông báo để hiển thị kết quả

Chúng tôi sẽ xác định một phương pháp giúp chúng tôi kiểm tra câu trả lời khi chúng tôi nhấp vào Tiếp theo. Chúng ta hãy xem xét đoạn mã sau thể hiện điều tương tự

Tập tin. myQuiz. py

Giải trình

Trong đoạn mã sau, chúng ta đã định nghĩa một phương thức là checkAnswer() giúp chúng ta kiểm tra xem phương án đã chọn có đúng không. Đối với điều này, chúng tôi đã sử dụng câu lệnh điều kiện if trả về True nếu giá trị của tùy chọn đã chọn khớp với câu trả lời

Bây giờ, chúng ta sẽ định nghĩa phương thức cho nút tiếp theo

Tập tin. myQuiz. py

Giải trình

Trong đoạn mã trên, chúng ta đã định nghĩa một phương thức là nextButton(). Trong phương pháp này, chúng tôi đã sử dụng câu lệnh điều kiện if để kiểm tra xem câu trả lời có đúng hay không và tăng tổng số câu trả lời đúng lên 1. Sau đó, chúng tôi đã sử dụng câu lệnh if-else để kiểm tra xem chúng tôi đã đi đến cuối câu hỏi hay chưa và hiển thị đầu ra tương ứng

Bây giờ chúng ta sẽ định nghĩa phương thức lưu trữ các thuộc tính của nút mà chúng ta sẽ sử dụng trong dự án này. Cụ thể, có hai nút mà chúng ta sẽ cần - nút đầu tiên là nút tiếp theo và nút còn lại là nút thoát

Chúng ta hãy xem xét đoạn mã sau thể hiện điều tương tự

Tập tin. myQuiz. py

Giải trình

Trong đoạn mã trên, chúng ta đã định nghĩa phương thức là buttons(). Chúng ta đã tạo hai đối tượng của lớp Button() của thư viện Tkinter trong phương thức này. Chúng tôi đã chỉ định các thuộc tính khác nhau cho các nút và sử dụng hàm place() để đặt chúng vào vị trí trong GUI

Bây giờ chúng tôi sẽ xác định một phương thức cho phép chúng tôi bỏ chọn nút radio trên màn hình. Phương pháp này sẽ hiển thị các tùy chọn có sẵn cho câu hỏi hiện tại mà chúng tôi nhận được thông qua các số câu hỏi. Hơn nữa, phương pháp này giúp cập nhật từng tùy chọn cho câu hỏi hiện tại của nút radio

Chúng ta hãy xem xét đoạn mã sau để hiểu tương tự

Tập tin. myQuiz. py

Giải trình

Trong đoạn mã trên, chúng ta đã định nghĩa phương thức là displayOptions(). Trong phương thức này, chúng tôi đã đặt giá trị thành 0. Sau đó, chúng tôi đã bỏ chọn các tùy chọn bằng cách sử dụng hàm set(), chỉ định tham số của nó bằng 0. Sau đó, chúng tôi đã sử dụng vòng lặp for để lặp qua các tùy chọn có sẵn cho từng câu hỏi và tăng giá trị lên 1

Bây giờ chúng ta sẽ xác định phương thức hiển thị câu hỏi hiện tại trên màn hình. Chúng ta hãy xem xét đoạn mã sau thể hiện điều tương tự

Tập tin. myQuiz. py

Giải trình

Trong đoạn mã trên, chúng tôi đã xác định phương thức là displayQuestion(). Trong phương thức này, chúng tôi đã sử dụng lớp Nhãn () của thư viện Tkinter để tạo một thể hiện, chỉ định các thuộc tính khác nhau cho nó. Sau đó, chúng tôi đã sử dụng hàm place() để đặt vị trí của nhãn trên màn hình

Bây giờ, chúng ta hãy định nghĩa phương thức hiển thị tiêu đề ra màn hình. Đây là đoạn mã sau thể hiện điều tương tự

Tập tin. myQuiz. py

Giải trình

Trong đoạn mã trên, chúng ta đã định nghĩa một phương thức là displayTitle(). Trong phương thức này, chúng tôi đã xác định nhãn cho tiêu đề bằng cách sử dụng lớp Label() của Tkinter và đặt nó bằng hàm place()

Cuối cùng, chúng tôi sẽ tạo các nút radio để chọn Câu hỏi trên màn hình tại một vị trí cụ thể. Phương thức này cũng trả về một danh sách nút radio mà chúng ta sẽ sử dụng sau này để thêm các tùy chọn cho chúng

Tập tin. myQuiz. py

Giải trình

Trong đoạn mã trên, chúng ta đã định nghĩa phương thức là radioButton(). Trong phương thức này, chúng tôi đã khởi tạo một danh sách trống và đặt vị trí của tùy chọn đầu tiên. Sau đó, chúng tôi đã sử dụng vòng lặp while để thêm các tùy chọn vào danh sách. Chúng ta đã tạo một đối tượng thuộc lớp RadioButton() của Tkinter, sử dụng hàm append(), đặt vị trí của nút và tăng vị trí của trục y lên 40 trong vòng lặp này. Cuối cùng, chúng tôi đã trả lại nút radio

Sử dụng dữ liệu trong Quiz

Vì chúng tôi đã thêm các tiện ích cần thiết và chức năng của chúng vào chương trình, hãy để chúng tôi sử dụng dữ liệu được lưu trữ trong JSON. Đây là đoạn mã sau đây, thể hiện điều tương tự

Tập tin. myQuiz. py

Giải trình

Trong đoạn mã trên, chúng tôi đã sử dụng hàm open() để mở tệp JSON và tải dữ liệu của nó vào chương trình chính. Sau đó, chúng tôi đã tạo các biến khác nhau để lưu trữ dữ liệu từ tệp JSON ở dạng câu hỏi, tùy chọn và câu trả lời của nó

Chúng tôi đã xây dựng thành công dự án của mình. Chúng ta sẽ khởi tạo lớp myQuiz() và sử dụng hàm mainloop() của Tkinter trước khi thực hiện chương trình

Chúng ta hãy xem xét đoạn mã sau thể hiện điều tương tự

Tập tin. myQuiz. py

Giải trình

Chúng tôi đã khởi tạo lớp myQuiz() trong đoạn mã trên. Cuối cùng, chúng tôi đã sử dụng chức năng mainloop() của Tkinter để hiển thị cửa sổ GUI

Làm cách nào để tạo MCQ bằng Python?

Điều kiện tiên quyết. GUI Python – tkinter
Tổng quan
Các bước cần thiết
Chúng tôi sẽ tạo dữ liệu. json để lưu trữ dữ liệu
Tạo GUI bằng Tkinter trong quiz. py
Ghi chú. Cả dữ liệu. json và bài kiểm tra. py sẽ được tạo trong cùng thư mục mà chúng tôi đã xác định ở trên

Làm cách nào để tạo một trò chơi đố vui bằng Python?

Cách tạo tập lệnh Python và thêm câu hỏi đố vui đầu tiên của bạn .
Tạo một tệp văn bản mới có tên "InteractiveQuiz. py"
Mở tệp bằng bất kỳ trình soạn thảo văn bản nào và thêm câu lệnh in đầu tiên của bạn để chào mừng người dùng tham gia bài kiểm tra. .
Đặt câu hỏi đầu tiên cho người dùng

Pip đại diện cho Python Mcq là gì?

PIP là từ viết tắt đệ quy của “ Chương trình Trình cài đặt Ưu tiên ” hoặc Gói Cài đặt PIP. Đây là một tiện ích dòng lệnh giúp cài đặt, cài đặt lại hoặc gỡ cài đặt các gói PyPI bằng một lệnh đơn giản. píp.

Một số dự án Python cho người mới bắt đầu là gì?

Ý tưởng dự án Python. Cấp độ mới bắt đầu .
Tạo trình tạo mã. .
Xây dựng một máy tính đếm ngược. .
Viết phương pháp sắp xếp. .
Xây dựng một bài kiểm tra tương tác. .
Tic-Tac-Toe bằng văn bản. .
Tạo bộ chuyển đổi nhiệt độ/đo lường. .
Xây dựng một ứng dụng truy cập. .
Xây dựng trò chơi đoán số