Runtime selamat menjalankan kepingan Python pendek dalam pelayar anda tanpa akses rangkaian atau akses fail, dan menghentikan sebarang program yang berjalan terlalu lama. Ia tempat untuk menguji penaakulan anda, bukan komputer penuh.
Pelajaran ini sebahagian daripada peralihan ke Python dan pelaksanaan dan bergantung pada membezakan ralat sintaks daripada keputusan salah.
Apakah yang dibenarkan dan ditolak oleh runtime terhad?
| Dibenarkan | Ditolak atau di luar tujuannya |
|---|---|
| Pemboleh ubah, aritmetik, perbandingan | Membuka atau menyimpan fail |
if, elif, else | Menggunakan internet |
Gelung for dan while | Gelung tanpa henti (dihentikan oleh had) |
Senarai, fungsi, print | Perpustakaan berat dan data besar |
Kotak pasir penaakulan Python kami dibina dengan had masa dan had memori, jadi program yang tidak pernah tamat dihentikan dan bukan membekukan halaman. Kami tidak menganggap mana-mana runtime pelayar sebagai selamat sepenuhnya, jadi jauhkan data peribadi sebenar daripadanya.
Contoh berlangkah
Tugasan: cetak kiraan detik ke belakang bermula dari 10 dengan langkah 3. Ini percubaan pertama.
n = 10
while n > 0:
print(n)
Langkah 1, jejak. n bermula pada 10. Ujian 10 > 0 ialah True, jadi 10 dicetak. Tiada apa-apa mengubah n, jadi ujian True lagi, dan 10 dicetak lagi, selama-lamanya.
Langkah 2, jangka had. Runtime menghentikan program apabila had masanya dicapai. Outputnya ialah senarai panjang 10 diikuti mesej henti. Runtime menghentikannya ialah tingkah laku yang betul, dan kesalahan itu milik anda.
Langkah 3, baiki. Gelung mesti menggerakkan n ke arah keluar.
n = 10
while n > 0:
print(n)
n = n - 3
Langkah 4, jejak semula.
| n pada ujian | n > 0 | dicetak | n selepas |
|---|---|---|---|
| 10 | True | 10 | 7 |
| 7 | True | 7 | 4 |
| 4 | True | 4 | 1 |
| 1 | True | 1 | -2 |
| -2 | False |
Outputnya ialah 10, 7, 4, 1.
Kesilapan yang perlu diwaspadai
Satu kesilapan kerap ialah menulis latihan yang bergantung pada fail.
Jawapan yang tersilap:
lines = open("scores.txt").read()Runtime tiada akses fail, jadi ini gagal. Kesilapan terletak pada reka bentuk latihan, bukan pada logik anda.
Pembetulannya ialah meletakkan data dalam program itu sendiri: scores = [72, 45, 50, 38, 91]. Algoritmanya sama sama ada nombor datang daripada fail atau senarai, dan dalam peperiksaan anda menaakul tentang algoritma. Gunakan nilai rekaan sahaja.
Semak kendiri
1. Mengapa while True: tanpa jalan keluar tidak membekukan halaman dalam sandbox?
Lihat jawapan
Runtime mempunyai had masa dan menghentikan program apabila had dicapai, kemudian menunjukkan mesej.
2. Tulis semula ini supaya berfungsi tanpa fail: names = open("class.txt").read().
Lihat jawapan
names = ["Ali", "Mei", "Ravi"]. Gunakan nama rekaan, dan baki algoritma kekal tidak berubah.
3. Apakah output program ini?
n = 2
while n < 30:
n = n * 3
print(n)
Lihat jawapan
n menjadi 2, kemudian 6, kemudian 18, kemudian 54. Pada 54 ujian 54 < 30 ialah False, jadi gelung berhenti. Output: 54.
Ke mana pelajaran ini membawa
Seterusnya, lihat mengapa nasihat tahun peperiksaan mesti dilabelkan dalam mengasingkan panduan Python sahaja 2029. Latih penjejakan gelung dalam pelatih jejak pseudokod terhad dan jalankan logik yang sama dalam kotak pasir penaakulan Python.
Jika anda mahu latihan berpandu tentang gelung dan pengujian, lihat tuisyen Sains Komputer dalam talian satu dengan satu kami.