Conditional yen statement ing Python. Syntax, else/elif pamblokiran, conto

Ing proses sinau program, asring perlu nggawe program sing ora gampang ditrapake ing urip nyata. Sawise kabeh, saka wektu kanggo wektu sampeyan kudu tindakake pandhuan mung ing kahanan tartamtu. Kanggo bisa ngetrapake iki ing program kasebut, kabeh basa duwe pernyataan kontrol. Kanthi bantuan, sampeyan bisa ngontrol aliran eksekusi kode, nggawe puteran utawa nindakake tumindak tartamtu mung nalika kondisi tartamtu bener.

Dina iki kita bakal ngomong babagan pernyataan yen, sing mriksa kahanan saiki kanggo kondisi tartamtu, lan adhedhasar informasi kasebut, nggawe keputusan babagan tumindak luwih lanjut.

Jinis Pranyatan Kontrol

Umumé, yen ora mung statement sing ngontrol aliran program. Kajaba iku, dheweke bisa dadi komponen saka rantai operator sing luwih gedhe.

Ana uga puteran lan statement sing ngontrol proses eksekusi. Dina iki kita mung bakal ngomong babagan operator kondisional lan rantai sing bisa melu.

Ing pemrograman, ana bab kayata branching. Iki tegese urutan perintah sing dieksekusi mung yen kondisi tartamtu bener. Kriteria kasebut bisa uga beda:

  1. Kesetaraan variabel menyang nilai tartamtu.
  2. Nindakake tumindak tartamtu.
  3. Status aplikasi (ambruk utawa ora).

Spektrum bisa luwih gedhe. Pernyataan kondisional ana sawetara jinis:

  1. Kanthi cabang siji. Yaiku, mriksa siji ditindakake, minangka asil tumindak tartamtu ditindakake.
  2. Kanthi loro utawa luwih cabang. Yen kritéria 1 iku bener, banjur mriksa kritéria 2. Yen bener, banjur mriksa 3. Lan supaya, tindakake akeh mriksa minangka dibutuhake.
  3. Kanthi sawetara kahanan. Kabeh iku prasaja ing kene. Interpreter mriksa sawetara kahanan utawa salah sijine.

yen pratelan

Struktur pernyataan if padha ing kabeh basa. Nanging, ing Python, sintaks kasebut rada beda karo liyane:

yen kahanan:

    <входящее выражение 1>

    <входящее выражение 2>

<ne входящее выражение>

Kaping pisanan, operator kasebut diumumake, sawise kasebut ditulis kahanan sing diwiwiti. Kondisi kasebut bisa bener utawa salah.

Iki diterusake karo blok kanthi printah. Yen langsung ngetutake kritéria sing kudu ditindakake, banjur urutan perintah sing cocog diarani blok if. Sampeyan bisa nggunakake sawetara printah ing.

Waé! Indentasi ing kabeh yen blok printah kudu ukuran sing padha. Wates blok ditemtokake dening indentasi. 

Miturut dokumentasi basa, indentasi ana 4 spasi. 

Kepiye cara kerja operator iki? Nalika interpreter ndeleng tembung yen, langsung mriksa ekspresi kasebut miturut kriteria sing ditemtokake pangguna. Yen mengkono, banjur wiwit nggoleki instruksi lan tindakake. Yen ora, kabeh printah saka blok iki dilewati.

Yen statement sawise kondisi ora indented, iku ora dianggep minangka blok yen. Ing kahanan kita, baris iki . Mulane, preduli saka asil mriksa, baris iki bakal kaleksanan.

Iki minangka potongan kode kanggo conto cara kerja operator iki.

angka = int(input("Ketik angka:"))

yen nomer > 10:

    print("Nomer luwih saka 10")

Program iki njaluk pangguna kanggo nomer lan mriksa yen luwih saka 10. Yen mangkono, bakal ngasilake informasi sing cocog. Contone, yen pangguna ngetik nomer 5, program mung bakal mungkasi, lan iku.

Nanging yen sampeyan nemtokake nomer 100, interpreter bakal ngerti yen luwih saka sepuluh, lan laporan.

Waé! Ing kasus kita, yen kondisi kasebut salah, program kasebut mandheg, amarga ora ana prentah sing diwenehake sawise instruksi kasebut.

Mung ana siji printah ing kode ndhuwur. Nanging isih akeh liyane. Syarat mung kanggo indent.

Saiki ayo analisa urutan perintah kasebut.

angka = int(input("Tulis angka:"))

yen nomer > 10:

    print("baris pisanan")

    print("baris kapindho")

    print("baris katelu")

print("Baris sing dieksekusi, preduli saka nomer sing diketik")

print("Akhir aplikasi")

Coba guess apa sing bakal dadi output yen sampeyan ngetik angka 2, 5, 10, 15, 50.

Kaya sing sampeyan ngerteni, yen nomer sing dilebokake pangguna luwih saka sepuluh, banjur telung baris bakal dadi output + siji kanthi teks "Run every time ..." lan siji "End", lan yen kurang saka sepuluh, banjur mung siji, kanthi teks sing beda. Mung baris 3,4,5 bakal dieksekusi yen bener. Nanging, rong baris pungkasan bakal ditulis ora preduli nomer apa sing ditemtokake pangguna.

Yen sampeyan nggunakake statement langsung ing console, asil bakal beda. Juru basa langsung nguripake mode multi-baris yen, sawise nemtokake kriteria verifikasi, penet Enter.

Upaminipun kita wis nulis urutan printah ing ngisor iki.

>>>

>>> n = 100

>>> yen n > 10:

...

Sawise iku, kita bakal weruh yen >>> wis diganti dening elipsis. Iki tegese mode input multiline diaktifake. Ing tembung prasaja, yen sampeyan menet Enter, sampeyan bakal ditransfer menyang input saka tataran kapindho instruksi. 

Lan kanggo metu saka blok iki, sampeyan kudu nambah siji konstruksi liyane menyang blok kasebut if.

>>>

>>> n = 100

>>> yen n > 10:

… print(«nv 10»)

...

Yen kondisi kasebut ora bener, program bakal rampung. Iki minangka masalah, amarga pangguna bisa nganggep program kasebut ditutup amarga gagal. Mulane, perlu menehi umpan balik marang pangguna. Kanggo iki, link digunakake yen-liya.

operator ekspresi yen-liya

Operator iki ngidini sampeyan ngleksanakake link: yen ekspresi cocog karo aturan tartamtu, nindakake tumindak kasebut, lan yen ora, banjur liyane. Yaiku, ngidini sampeyan mbagi aliran program dadi rong dalan. Sintaks kasebut intuisi:

yen kahanan:

    #yen diblokir

    pratelan 1

    pratelan 2

    Lan liya-liyane

liyane:

    # blok liyane

    pratelan 3

    pratelan 4

    lan liya-liyane:

Ayo kita nerangake carane operator iki dianggo. Kaping pisanan, statement standar dieksekusi ing thread yowes, mriksa apa cocog kondisi "bener" utawa "salah". Tumindak liyane gumantung saka asil mriksa. Yen bener, instruksi sing ana ing urutan instruksi sawise kondisi kasebut langsung dieksekusi. yowes, yen iku palsu, banjur liya

Kanthi cara iki sampeyan bisa ngatasi kesalahan. Contone, pangguna kudu ngetik radius. Temenan, iku mung bisa dadi nomer karo tandha plus, utawa iku nilai null. Yen kurang saka 0, sampeyan kudu ngetokake pesen sing njaluk sampeyan ngetik nomer positif. 

Punika kode sing ngleksanakake tugas iki. Nanging ana siji kesalahan ing kene. Coba tebak sing endi. 

radius = int(input("Ketik radius:"))

yen radius >= 0:

    print("Lingkar = ", 2 * 3.14 * jari-jari)

    print("Luas = ", 3.14 * jari-jari ** 2)

    liyane:

        print("Mangga ketik angka positif")

Kesalahan indentasi sing ora cocog. Yen lan Liyane kudu dumunung tanpa wong-wong mau utawa karo jumlah sing padha (gumantung saka apa lagi nested utawa ora).

Ayo menehi kasus panggunaan liyane (ing ngendi kabeh bakal bener karo keselarasan operator) - unsur aplikasi sing mriksa sandhi.

sandi = input("Ketik sandi:")

yen sandi == "sshh":

    print("Sugeng rawuh")

liyane:

    print("Akses ditolak")

Pandhuan iki ngliwati wong kasebut yen tembung sandhi sshh. Yen kombinasi huruf lan angka liyane, banjur bakal ditampilake pesen "Akses ditolak".

statement-ekspresi yen-elif-liyane

Mung yen sawetara kondisi ora bener, statement sing ana ing blok bakal dieksekusi. liya. Ekspresi iki dianggo kaya iki.

yen kondisi_1:

    #yen diblokir

    statement

    statement

    statement liyane

kondisi elif_2:

    # blok elif pisanan

    statement

    statement

    statement liyane

kondisi elif_3:

    # blok elif kapindho

    statement

    statement

    statement liyane

...

liya

    statement

    statement

    statement liyane

Sampeyan bisa nemtokake sawetara kondisi tambahan.

statements nested

Cara liya kanggo ngleksanakake macem-macem kahanan yaiku nglebokake pemeriksaan kondisi tambahan ing blok if.

Operator if nang blok kondisi liyane

gre_score = int(input("Ketik wates kredit sampeyan saiki"))

per_grad = int(input("Ketik peringkat kredit sampeyan:"))

yen per_grad> 70:

    # njaba yen blok

        yen gre_score > 150:

            # batin yen blok

    print("Sugeng, panjenengan sampun pikantuk utangan")

liyane:

    print("Nyuwun pangapunten, sampeyan ora layak kanggo utangan")

Program iki nindakake mriksa rating kredit. Yen kurang saka 70, program kasebut nyatakake yen pangguna ora layak kanggo kredit. Yen luwih gedhe, priksa kaping pindho ditindakake kanggo ndeleng yen watesan kredit saiki luwih saka 150. Yen ya, banjur pesen ditampilake yen utangan wis ditanggepi.

Yen nilai loro kasebut salah, banjur pesen ditampilake manawa pangguna ora duwe kemungkinan entuk utangan. 

Saiki ayo gawe maneh program kasebut.

gre_score = int(input("Ketik limit saiki:"))

per_grad = int(input("Ketik skor kredit:"))

yen per_grad> 70:

    yen gre_score > 150:

        print("Sugeng, panjenengan sampun pikantuk utangan")

    liyane:

        print("Batesan kredit sampeyan sithik")

liyane:

    print("Nyuwun pangapunten, sampeyan ora layak kanggo kredit")

Kode dhewe banget padha, nanging nested if uga menehi algoritma ing kasus kondisi saka iku dadi metu palsu. Yaiku, watesan kertu ora cukup, nanging riwayat kredit apik, pesen "Sampeyan duwe rating kredit sing kurang" ditampilake.

statement yen-liyane ing kahanan liya

Ayo gawe program liyane sing nemtokake biji siswa adhedhasar skor tes.

skor = int(input("Ketik skor sampeyan:"))

yen skor >= 90:

    print("Apik! Nilaimu A")

liyane:

    yen skor >= 80:

print("Apik! Nilaimu B")

    liyane:

yen skor >= 70:

    print("Apik! Nilaimu C")

liyane:

    yen skor >= 60:

print(“Bismu D. Wajib diulang materi.”)

    liyane:

print("Sampeyan gagal ujian")

Aplikasi mriksa dhisik kanggo ndeleng apa skor luwih saka utawa padha karo 90. Yen ya, banjur ngasilake biji A. Yen kondisi iki salah, banjur mriksa sakteruse dileksanakake. Kita weruh yen algoritma meh padha ing pandang sepisanan. Dadi tinimbang mriksa nang liya luwih apik nggunakake kombinasi yen-elif-liyane.

Dadi operator if nindakake fungsi penting banget - iku ndadekake manawa bêsik tartamtu saka kode sing kaleksanan mung yen ana perlu kanggo. Ora bisa mbayangake program tanpa, amarga algoritma sing paling gampang mbutuhake garpu kaya "yen sampeyan ngiwa, sampeyan bakal nemokake, lan yen sampeyan menyang sisih tengen, mula sampeyan kudu nindakake iki lan iki."

Ninggalake a Reply