Terus ke kandungan
IGCSE·Tuition
Sains Komputer · Pelajaran

Memetakan algoritma kepada fungsi Python terhad

Anda boleh membaca pseudokod dengan lancar, kemudian terhenti apabila diminta menulis perkara yang sama dalam Python.

Dalam halaman ini
  1. Bagaimanakah setiap bahagian pseudokod dipetakan ke Python?
  2. Contoh berlangkah
  3. Kesilapan yang perlu diwaspadai
  4. Semak kendiri
  5. Ke mana pelajaran ini membawa

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?

IdeaPseudokod gaya CambridgePython
Simpan nilaiCount ← 0count = 0
Banding kesamaanIF Mark = 50if mark == 50:
Perbandingan lain>=, <=, <>>=, <=, !=
Gelung terkawal bilanganFOR Index ← 1 TO 5for index in range(1, 6):
Gelung ke atas senaraiFOR dengan Scores[Index]for score in scores:
Hujung blokENDIF, NEXTlekukan
Tunjuk hasilOUTPUT Countprint(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.

scorescore >= 50count selepas
(mula)0
72True1
45False1
50True2
38False2
91True3

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)): kemudian scores[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.

Soalan lazim

Adakah saya perlu menjawab dalam Python dalam peperiksaan?

Ikut arahan dalam setiap soalan dan sukatan untuk tahun peperiksaan anda. Jika soalan meminta pseudokod, tulis pseudokod. Semak laman sukatan Computer Science 0478 di laman web Cambridge, dan tanya pusat peperiksaan anda jika versi sukatan anda tidak jelas.

Apakah beza antara print dan return?

print memaparkan nilai pada skrin dan fungsi diteruskan. return menyerahkan nilai kepada pemanggil fungsi dan menamatkan fungsi. Jika soalan meminta fungsi memberi balik hasil, gunakan return, kemudian print nilai yang dikembalikan semasa menguji.

Mengapa Python tidak memerlukan ENDIF atau NEXT?

Python menandakan hujung blok melalui lekukan. Baris yang dilekukkan di bawah if atau for ialah miliknya, dan baris pertama yang dilekukkan kurang menamatkan blok. Itulah sebabnya jarak yang konsisten sangat penting dalam kod Python.

Dikemas kini:

Langkah seterusnya

Jika menterjemah baris demi baris masih terasa seperti meneka, guru satu dengan satu boleh membina jadual pemetaan bersama anda dan menyemak setiap baris dengan jejak.

Kelas percubaan berbayar satu jam pada kadar guru yang disahkan, bermula RM80. Yuran lain, jadual dan susunan seterusnya disahkan terus bersama guru selepas kelas percubaan.

Tuisyen diatur bersama ibu bapa atau penjaga. Hantar halaman ini kepada mereka melalui WhatsApp supaya mereka boleh bertanya bagi pihak anda.

Ibu bapa atau penjaga? Tanya di sini

9,000+ pelajar telah dibantu melalui perkhidmatan kami