Saya akan membaca buku pemrograman pengantar dan daftar contoh sederhana di pseudocode:
Start
input myNumber
set myAnswer = myNumber * 2
output myAnswer
Stop
Mengapa kita tidak bisa menghilangkan membuat variabel lain yang disebut myAnswer
dan hanya memasukkan operasi ke perintah output, seperti ini:
Start
input myNumber
output myNumber * 2
Stop
Mengapa yang pertama benar dan yang terakhir tidak?
pseudocode
structured-programming
pengguna1475207
sumber
sumber
Jawaban:
Anda bisa tetapi yang lain adalah agar Anda melihat apa yang sedang terjadi dan Anda dapat menggunakannya
myAnswer
nanti dalam program. Jika Anda menggunakan yang kedua, Anda tidak dapat menggunakan kembalimyAnswer
.Jadi nanti dalam program Anda mungkin ingin:
Anda mungkin memiliki operasi berbeda yang ingin Anda gunakan.
Pertimbangkan bertukar nomor:
Itu akan sulit tanpa variabel. Buku-buku komputer mulai dasar yang nyata, dan sebagian besar pemrograman mudah sampai Anda melihat kerumitan. Kebanyakan semuanya sepele dalam tutorial, dan hanya dalam kompleksitas Anda melihat di mana hal-hal masuk akal atau tidak.
sumber
result
variabel bahkan untuk fungsi pendek, sehingga debugging dengan menambahkanprint(result)
sangat cepat. Ini lebih karena kenyamanan daripada latihan yang baik.Alasan lain, penugasan
set myAnswer = myNumber * 2
memberikan nilai yang dihasilkan nama . Seseorang yang membaca versi dua baris kode Anda hanya tahu bahwa itu mencetak nilaimyNumber * 2
. Seseorang yang membaca versi tiga baris dapat melihat bahwamyNumber * 2
itulah jawabannya .Ini mungkin tidak terlihat penting dalam contoh sepele seperti itu, tetapi kadang-kadang, menetapkan nilai hasil ke variabel dengan nama yang bermakna dapat membuatnya lebih mudah bagi programmer lain untuk membaca dan memahami kode Anda.
sumber
i
,,result
atau pengenal tidak berarti lainnya tidak melakukan apa pun untuk meningkatkan kejelasan, dan hanya mengacaukan kodei
lebih baik menjadi indeks array. Jika adaresult
, fungsi harus diakhiri denganreturn result
atau setara moral. Dan seterusnya ...return result
, maka Anda mungkin juga hanya ingin mengembalikan apa pun yang Anda tetapkan untuk hasil. Kita bisa melihat hasilnya. Anda mengembalikannya, kami mengerti.Itu pseudocode. Ini tidak dianggap sebagai bahasa yang diterapkan tertentu.
Beberapa bahasa pemrograman tidak mendukung mengevaluasi ekspresi dan kemudian oututut hasilnya di baris kode yang sama. Misalnya kebanyakan assembler tidak mendukungnya. Mungkin penulis buku ingin menunjukkan sesuatu dengan cara tingkat rendah.
sumber
Jawaban lain telah membahas rincian mekanis spesifik dan contoh-contoh kapan satu atau bentuk lain akan lebih baik, tetapi saya ingin menyebutkan sedikit latar belakang lebih jauh, semacam filosofis:
Anda sedang belajar bahasa.
Bahasa adalah sesuatu di mana gagasan dapat diekspresikan dan dipahami (dikomunikasikan). Bahasa pemrograman komputer memiliki properti tambahan yang dapat diuraikan secara mekanis oleh mesin yang dirancang untuk mengambil tindakan (mengeksekusi) berdasarkan ide (keputusan) yang ditentukan dan dimasukkan dalam penggunaan bahasa itu.
Dalam bahasa APA SAJA yang sangat berguna, ada lebih dari satu cara untuk mengekspresikan hampir semua ide yang dapat diungkapkan dalam bahasa itu.
Pertimbangkan berbagai macam nuansa yang tersedia dalam bahasa Inggris. Bahkan kalimat sederhana, seperti
dapat bervariasi untuk mengekspresikan ide-ide yang sedikit berbeda atau menempatkan penekanan pada bagian-bagian berbeda dari pemandangan sambil merujuk pada tindakan alam semesta fisik yang sama persis.
Pertama adalah variasi tata bahasa:
Kemudian variasi yang lebih luas dan lebih luas, masih mengacu pada aksi fisik yang sama:
Lihat saja implikasi kata "dekat" dalam kalimat terakhir itu. Dimasukkannya menyampaikan berbagai konsep baru yang tidak hadir.
Ada selalu lebih dari satu cara untuk melakukannya, Python Zen sebaliknya.
Tentu saja, akan ada SATU cara yang dengan sempurna mengungkapkan niat Anda dan paling cocok, sama seperti Anda hanya akan memilih SATU kalimat bahasa Inggris di atas tergantung pada apa yang ingin Anda komunikasikan. Itulah Zen tentang Python.
Tetapi dalam kursus pemrograman pengantar atau kursus bahasa Inggris pengantar, Anda harus terlebih dahulu mempelajari berbagai cara (kata-kata, cuplikan kode) di mana Anda dapat menulis ide sebelum Anda akan mengembangkan penilaian untuk memilih yang paling pas.
sumber
__init__
dan__new__
, hanya untuk beberapa nama. Intinya adalah bahwa masing-masing cocok untuk masalah yang agak berbeda. Anda tidak akan memilih salah satu dari kalimat bahasa Inggris secara acak, Anda juga tidak akan memilih salah satu dari fitur bahasa Python ini secara acak.Anda hanya bertanya tentang
myAnswer
variabel yang tampaknya berlebihan. Jawaban lain sudah menjelaskan beberapa alasan dan kapan masuk akal untuk menghilangkan atau menggunakannya tetapi ada satu lagi: bagaimana dengan ini?atau bahkan itu
Dalam sebagian besar bahasa ini masih berfungsi, tetapi bisakah Anda membacanya? Sulit jadi kami sering menggunakan variabel pembantu karena komputer bukan satu-satunya yang membaca kode. Kita perlu memeliharanya dan memahaminya dalam beberapa bulan dan bahkan lebih sulit untuk menulis kode yang masih dapat Anda pahami kemudian kode yang berfungsi ... biasanya setelah hanya beberapa hari Anda tidak akan tahu mengapa Anda melakukan sesuatu dengan cara tertentu .
sumber
(*2)
. Saya akan keberatan, bagaimanapun, melakukan input tidak selalu dapat dinyatakan dengan aman hanya dengan mengakses variabel / melakukan operasi aritmatika: ia dapat memiliki efek samping yang dapat diamati.Anda dapat melakukan kedua varian (dalam kasus sederhana ini), tetapi varian pertama menjadi lebih mudah dibaca dan terstruktur untuk kasus yang lebih kompleks. Varian pertama menunjukkan model IPO dengan satu baris untuk setiap langkah (dua di antaranya sudah dengan nama kanan):
sumber