Penyata cawangan boleh dibahagikan kepada struktur cawangan tunggal, dua cawangan dan berbilang cawangan Di antara semua cawangan, hanya satu laluan boleh dipilih dan sama ada untuk melaksanakan ditentukan berdasarkan sama ada keadaan cawangan adalah benar atau tidak. Memandangkan hanya satu laluan boleh dipilih untuk pelaksanaan, peraturan untuk mewujudkan syarat bagi penyata cawangan harus dipertimbangkan sepenuhnya. Berikut adalah beberapa contoh untuk menggambarkan penggunaan pernyataan cawangan.
Struktur cawangan tunggal ialah struktur pemilihan yang paling mudah adalah seperti berikut:
if 条件表达式: 语句块
Apabila ungkapan bersyarat diwujudkan. , laksanakan blok pernyataan, jika ia tidak ditubuhkan, ia tidak akan dilaksanakan. Contohnya: pengguna memasukkan dua nombor, membandingkan saiznya dan mengeluarkan nombor yang lebih kecil.
num_a = int(input('please input a number:')) num_b = int(input('please input another number:')) if num_a > num_b: num_a, num_b = num_b, num_a #交换两个数 print("the smaller one is",num_a)
Contoh di atas menggunakan struktur cawangan tunggal Apabila syarat nombor a lebih besar daripada nombor b adalah benar, kedua-duanya ditukar, dan akhirnya nombor yang lebih kecil adalah output. Dalam penyata cawangan, ia dilaksanakan hanya apabila keadaan adalah benar Jika tidak, tiada pertukaran dilakukan, dan penyataan selepas penyata cawangan dilaksanakan secara terus secara berurutan.
Struktur dua cawangan menambah pernyataan else berdasarkan struktur cawangan tunggal Apabila keadaan if tidak ditetapkan, Pernyataan else dilaksanakan. Struktur sintaks adalah seperti berikut:
if 条件表达式: 语句块1 else: 语句块2
Struktur dua cabang ialah struktur dua pilihan Satu dan hanya satu blok pernyataan 1 dan blok pernyataan 2 pasti akan dilaksanakan. Masih contoh di atas, menggunakan pernyataan dua cabang, ia boleh ditulis:
num_a = int(input('please input a number:')) num_b = int(input('please input another number:')) if num_a > num_b: print("the smaller one is",num_b) else: print("the smaller one is",num_a)
Contoh lain, untuk menentukan jantina berdasarkan nombor ID, boleh ditulis:
id_code = input('请输入身份证号码:') number = int(id_code[-2]) if number%2 == 0: print("女性") else: print("男性")
Yang lain syarat tersirat di sini ialah nombor%2 = = 0 tidak dipegang, iaitu nombor ialah nombor ganjil, jadi jika tidak boleh digantikan dengan if number%2 == 1. Walau bagaimanapun, memandangkan kecekapan pelaksanaan program, kedua-dua if kenyataan perlu dinilai dua kali, manakala pernyataan lain tidak perlu dinilai, jadi ia lebih cekap.
Struktur berbilang cawangan ialah lanjutan daripada struktur dua cawangan, iaitu, kes berbilang pilihan penyataan adalah pilihan Apabila lagi wujud, satu dan hanya satu cabang akan dilaksanakan. Struktur tatabahasa adalah seperti berikut:
if 条件表达式1: 语句块1 elif条件表达式2: 语句块2 … elif条件表达式n: 语句块n else: 语句块n+1
Sebagai contoh, biarkan pengguna memasukkan ketinggian dan berat mereka untuk mengira indeks BMI mereka. BMI merujuk kepada indeks jisim badan, yang diperoleh dengan membahagikan berat (kg) dengan kuasa dua ketinggian (m. Terdapat piawaian ukuran yang diterima di peringkat antarabangsa:
Terlalu ringan | Kurang daripada 18.5 |
Biasa | 18.5-25 (eksklusif) |
Lemak | 25 - 30 (tidak termasuk) |
Obesiti | 30-35 (tidak termasuk) |
重度肥胖 | 35及以上 |
weight = float(input("请输入你的体重(Kg):")) height = float(input("请输入你的身高(m):")) BMI = weight / height ** 2 if BMI < 0: print("输入错误") elif BMI < 18.5 : print("偏瘦") elif BMI < 25 : print("正常") elif BMI < 30 : print("偏胖") elif BMI < 35 : print("肥胖") else: print("重度肥胖")
上例通过计算得到BMI指数,根据其值输出所对应的“档位”,因为在设定分支条件时应当注意每个分支条件之间没有重复区域,才能保证输出结果为其中一种。
在分支语句中如果要做进一步的条件判断,就会用到嵌套的分支结构。嵌套也可以有多层,通过缩进来表示其包含关系。
代表性语法结构如下:
if 条件表达式1: … if条件表达式2: 语句块1 else: 语句块2 else: 语句块3
例如上例在做身份证号的性别判断时,如果要先对输入的身份证号合法性做基本检查,例如其位数是不是正确,则需要嵌套分支:
id_code = input('请输入身份证号码:') if len(id_code) == 18: number = int(id_code[-2]) if number%2 == 0: print("女性") else: print("男性") else: print("输入不合法")
Atas ialah kandungan terperinci Penggunaan pernyataan cawangan Python biasa termasuk:. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!