Untuk memetakan algoritma kepada Python, terjemahkan satu struktur pada satu masa: penugasan, pilihan, gelung, output. Kekalkan logik sama sepenuhnya dan ubah tatatanda sahaja.
Ini pelajaran pertama dalam peralihan ke Python dan pelaksanaan. Ia bergantung pada tatatanda daripada pseudokod untuk sukatan yang berkenaan.
Bagaimanakah setiap bahagian pseudokod dipetakan ke Python?
| Idea | Pseudokod gaya Cambridge | Python |
|---|---|---|
| Simpan nilai | Count ← 0 | count = 0 |
| Banding kesamaan | IF Mark = 50 | if mark == 50: |
| Perbandingan lain | >=, <=, <> | >=, <=, != |
| Gelung terkawal bilangan | FOR Index ← 1 TO 5 | for index in range(1, 6): |
| Gelung ke atas senarai | FOR dengan Scores[Index] | for score in scores: |
| Hujung blok | ENDIF, NEXT | lekukan |
| Tunjuk hasil | OUTPUT Count | print(count) atau return count |
Fungsi range berhenti satu langkah sebelum nombor keduanya. Untuk mengira 1 hingga 5, anda tulis range(1, 6).
Contoh berlangkah
Algoritma: kira berapa daripada lima markah ialah 50 atau lebih.
Count ← 0
FOR Index ← 1 TO 5
IF Scores[Index] >= 50 THEN
Count ← Count + 1
ENDIF
NEXT Index
OUTPUT Count
Langkah 1, bungkus dalam fungsi. Tatasusunan menjadi parameter, supaya fungsi boleh diuji dengan sebarang senarai.
Langkah 2, terjemah setiap struktur.
def count_passes(scores):
count = 0
for score in scores:
if score >= 50:
count = count + 1
return count
print(count_passes([72, 45, 50, 38, 91]))
Langkah 3, jejak dengan 72, 45, 50, 38, 91.
| score | score >= 50 | count selepas |
|---|---|---|
| (mula) | 0 | |
| 72 | True | 1 |
| 45 | False | 1 |
| 50 | True | 2 |
| 38 | False | 2 |
| 91 | True | 3 |
Outputnya ialah 3. Perhatikan bahawa 50 dikira, kerana ujiannya >= dan bukan >.
Kesilapan yang perlu diwaspadai
Satu kesilapan lazim ialah menyalin julat indeks pseudokod terus ke dalam Python.
Jawapan yang tersilap:
for index in range(1, len(scores)):kemudianscores[index]Ini bermula pada kedudukan 1, tetapi senarai Python bermula pada kedudukan 0, jadi markah pertama terlangkau. Dengan senarai di atas ia melihat 45, 50, 38, 91 dan memulangkan 2.
Pembetulannya ialah menggelung terus ke atas nilai, seperti for score in scores, yang tidak boleh terlangkau atau terlebih. Jika anda perlukan indeks, range(len(scores)) berjalan dari 0 hingga kedudukan terakhir. Sentiasa jejak item pertama dan terakhir untuk menangkap kesilapan ini.
Semak kendiri
1. Tulis Python untuk Total ← Total + Mark.
Lihat jawapan
total = total + mark. Anak panah menjadi =, dan nama pemboleh ubah ditulis huruf kecil mengikut kebiasaan.
2. Tulis syarat Python untuk IF Mark = 100 THEN.
Lihat jawapan
if mark == 100:. Dua tanda sama dengan untuk membandingkan, dan baris berakhir dengan titik bertindih.
3. Apakah yang dipulangkan oleh count_passes([50, 50, 49])?
Lihat jawapan
2. Dua nilai 50 lulus kerana 50 >= 50 ialah True, dan 49 tidak.
Ke mana pelajaran ini membawa
Seterusnya, lihat bagaimana jarak mengubah tingkah laku dalam menguji lekukan dan struktur cabang. Cuba fungsi di atas dalam kotak pasir penaakulan Python dan banding dengan pelatih jejak pseudokod terhad.
Jika anda menterjemah dengan betul tetapi kehilangan markah pada jejak, tuisyen Sains Komputer dalam talian satu dengan satu kami boleh menumpukan pada tabiat itu.