Chạy từng dòng một chương trình Python hoặc mã giả kiểu đề thi. Bảng biến cho thấy giá trị và kiểu (int, float, str, bool) đổi thế nào sau mỗi lệnh gán; cây biểu thức cho thấy thứ tự ưu tiên và cách tính 17 // 5, 17 % 5, int(3.7). Có nhập xuất, rẽ nhánh, vòng lặp, số ngẫu nhiên kèm biểu đồ tần số, đọc ghi tệp ảo, lỗi ép kiểu và ngoại lệ, tràn số nguyên 32 bit, cùng bảng theo dõi từng bước.
Biến là một ô nhớ có tên; lệnh gán tính giá trị của biểu thức bên phải rồi lưu vào biến bên trái. Mô phỏng chạy một phần nhỏ của Python (và mã giả kiểu đề thi với ←, DIV, MOD, IF … ENDIF, FOR … NEXT) từng dòng một: mũi tên chỉ dòng sắp chạy, bảng biến hiện tên, kiểu và giá trị cũ, mới của mỗi biến, còn biểu thức của dòng vừa chạy được vẽ thành cây và tính từ lá lên gốc theo đúng thứ tự ưu tiên. Có chín chương trình mẫu: kiểu dữ liệu, phép toán, nhập xuất, rẽ nhánh, vòng lặp, gieo xúc xắc, đọc ghi tệp, lỗi ép kiểu và ngoại lệ, tràn số nguyên 32 bit.
Chọn chương trình mẫu và ngôn ngữ, bấm Chạy 1 dòng để đi từng bước, Chạy để chạy theo tốc độ đã chọn, Chạy hết để chạy tới cuối. Ô Dữ liệu nhập chứa các giá trị mà input() hay INPUT sẽ đọc, mỗi dòng một giá trị; màn hình đầu ra, bảng theo dõi (trace table) và tệp ảo cập nhật sau mỗi bước. Bấm Sửa mã để viết chương trình riêng, đổi Số nguyên sang 32 bit để thấy số quay vòng khi vượt 2147483647.
Câu hỏi gợi ý:
– Vì sao age = input() rồi age + 1 báo lỗi, còn int(age) + 1 thì không?
– 17 // 5, 17 % 5 và 17 / 5 cho kết quả và kiểu gì? Với -7 thì // và DIV khác nhau thế nào?
– Ở chế độ 32 bit, vì sao 2147483647 + 1 lại thành một số âm?