if語(yǔ)句的使用
在Python中撤逢,要構(gòu)造分支結(jié)構(gòu)可以使用if窒朋、elif和else關(guān)鍵字争拐。所謂關(guān)鍵字就是有特殊含義的單詞腋粥,像if和else就是專門用于構(gòu)造分支結(jié)構(gòu)的關(guān)鍵字,很顯然你不能夠使用它作為變量名(事實(shí)上,用作其他的標(biāo)識(shí)符也是不可以)隘冲。下面的例子中演示了如何構(gòu)造一個(gè)分支結(jié)構(gòu)金赦。
"""
用戶身份驗(yàn)證
"""
username = input('請(qǐng)輸入用戶名: ')
password = input('請(qǐng)輸入口令: ')
# 如果希望輸入口令時(shí) 終端中沒有回顯 可以使用getpass模塊的getpass函數(shù)
# import getpass
# password = getpass.getpass('請(qǐng)輸入口令: ')
if username == 'admin' and password == '123456':
? ? print('身份驗(yàn)證成功!')
else:
? ? print('身份驗(yàn)證失敗!')
唯一需要說(shuō)明的是和C/C++、Java等語(yǔ)言不同对嚼,Python中沒有用花括號(hào)來(lái)構(gòu)造代碼塊而是使用了縮進(jìn)的方式來(lái)設(shè)置代碼的層次結(jié)構(gòu)夹抗,如果if條件成立的情況下需要執(zhí)行多條語(yǔ)句,只要保持多條語(yǔ)句具有相同的縮進(jìn)就可以了纵竖,換句話說(shuō)連續(xù)的代碼如果又保持了相同的縮進(jìn)那么它們屬于同一個(gè)代碼塊漠烧,相當(dāng)于是一個(gè)執(zhí)行的整體。
當(dāng)然如果要構(gòu)造出更多的分支靡砌,可以使用if…elif…else…結(jié)構(gòu)已脓,例如下面的分段函數(shù)求值。
"""
分段函數(shù)求值
? ? ? ? 3x - 5? (x > 1)
f(x) =? x + 2? (-1 <= x <= 1)
? ? ? ? 5x + 3? (x < -1)
Version: 0.1
Author: 駱昊
"""
x = float(input('x = '))
if x > 1:
? ? y = 3 * x - 5
elif x >= -1:
? ? y = x + 2
else:
? ? y = 5 * x + 3
print('f(%.2f) = %.2f' % (x, y))
當(dāng)然根據(jù)實(shí)際開發(fā)的需要通殃,分支結(jié)構(gòu)是可以嵌套的度液,例如判斷是否通關(guān)以后還要根據(jù)你獲得的寶物或者道具的數(shù)量對(duì)你的表現(xiàn)給出等級(jí)(比如點(diǎn)亮兩顆或三顆星星),那么我們就需要在if的內(nèi)部構(gòu)造出一個(gè)新的分支結(jié)構(gòu)画舌,同理elif和else中也可以再構(gòu)造新的分支堕担,我們稱之為嵌套的分支結(jié)構(gòu),也就是說(shuō)上面的代碼也可以寫成下面的樣子曲聂。
"""
分段函數(shù)求值
3x - 5 (x > 1)
f(x) = x + 2 (-1 <= x <= 1)
5x + 3 (x < -1)
"""
x = float(input('x = '))
if x > 1:
? ? y = 3 * x - 5
else:
? ? if x >= -1:
? ? ? ? y = x + 2
? ? else:
? ? ? ? y = 5 * x + 3
print('f(%.2f) = %.2f' % (x, y))
說(shuō)明:?大家可以自己感受一下這兩種寫法到底是哪一種更好霹购。在之前我們提到的Python之禪中有這么一句話“Flat is better than nested.”,之所以提倡代碼“扁平化”是因?yàn)榍短捉Y(jié)構(gòu)的嵌套層次多了之后會(huì)嚴(yán)重的影響代碼的可讀性朋腋,所以能使用扁平化的結(jié)構(gòu)時(shí)就不要使用嵌套齐疙。
"""
2019.7.11
百分制度成績(jī)等級(jí)轉(zhuǎn)換
version:0.1
auther:碼奮
"""
socre=float(input("請(qǐng)輸入分?jǐn)?shù):"))
if socre>=90:
? ? grade='A'
elif socre>=80 and socre<90:
? ? grade='B'
elif socre>=70 and socre<80:
? ? grade='C'
elif socre>=60 and socre<70:
? ? grade='D'
else :
? ? grade='E'
print('對(duì)應(yīng)的等級(jí)是:',grade)
"""
2019.7.11
day 03 個(gè)人所得稅計(jì)算器
version: 0.1
auther:碼奮
"""
salary = float(input('本月收入: '))
insurance = float(input('五險(xiǎn)一金: '))
diff = salary - insurance - 3500
if diff <= 0:
? ? rate = 0
? ? deduction = 0
elif diff < 1500:
? ? rate = 0.03
? ? deduction = 0
elif diff < 4500:
? ? rate = 0.1
? ? deduction = 105
elif diff < 9000:
? ? rate = 0.2
? ? deduction = 555
elif diff < 35000:
? ? rate = 0.25
? ? deduction = 1005
elif diff < 55000:
? ? rate = 0.3
? ? deduction = 2755
elif diff < 80000:
? ? rate = 0.35
? ? deduction = 5505
else:
? ? rate = 0.45
? ? deduction = 13505
tax = abs(diff * rate - deduction)
print('個(gè)人所得稅: ¥%.2f元' % tax)
print('實(shí)際到手收入: ¥%.2f元' % (diff + 3500 - tax))
"""
2019.7.11
day 03 輸入三角形的邊長(zhǎng),如果能構(gòu)成三角形則計(jì)算面積和周長(zhǎng)
version:0.1
auther:碼奮
"""
import math
a=float(input("a="))
b=float(input("b="))
c=float(input("c="))
if a>0 and b>0 and c>0 and a+b>c and a+c>b and b+c>a:
? ? print('三角形的周長(zhǎng)=',(a+c+b))
? ? p=(a+b+c)/2
? ? eare=math.sqrt(p*(p-a)*(p-b)*(p-c))
? ? print('三角形面積是',eare)
else:
? ? print('不能構(gòu)成三角形旭咽!')
"""
2019.7.11
英制單位與公制單位互換
version:0.1
auther:碼奮
"""
?
value = float(input("請(qǐng)輸入長(zhǎng)度:"))
Unit=input("請(qǐng)輸入單位:")
if Unit=='in'or Unit=='英寸':
? ? print("%f英寸=%f厘米"%(value,value*2.54))
elif Unit=='cm'or Unit=='厘米':
? ? print("%f厘米=%f英寸"%(value,value/2.54))
else:
? ? print("請(qǐng)輸入有效的單位贞奋!")
"""
2019.7.11
擲色子決定做什么
version:0.1
auther:碼奮
"""
from random import randint
face=randint(1,6)
if face ==1:
? ? print('唱歌')
elif face==2:
? ? print('跳舞')
elif face==3:
? ? print('學(xué)習(xí)')
elif face==4:
? ? print('練字')
elif face==5:
? ? print('去玩')
else :
? ? print('看電視')
---------------------
作者:碼奮
來(lái)源:CSDN
原文:https://cable-ching.blog.csdn.net/article/details/95508288
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接穷绵!