Python學習——分支結構

if語句的使用

在Python中,要構造分支結構可以使用if、elif和else關鍵字。所謂關鍵字就是有特殊含義的單詞,像if和else就是專門用于構造分支結構的關鍵字,很顯然你不能夠使用它作為變量名(事實上,用作其他的標識符也是不可以)。下面的例子中演示了如何構造一個分支結構。

"""

用戶身份驗證

"""

username = input('請輸入用戶名: ')

password = input('請輸入口令: ')

# 如果希望輸入口令時 終端中沒有回顯 可以使用getpass模塊的getpass函數

# import getpass

# password = getpass.getpass('請輸入口令: ')

if username == 'admin' and password == '123456':

? ? print('身份驗證成功!')

else:

? ? print('身份驗證失敗!')

唯一需要說明的是和C/C++、Java等語言不同,Python中沒有用花括號來構造代碼塊而是使用了縮進的方式來設置代碼的層次結構,如果if條件成立的情況下需要執(zhí)行多條語句,只要保持多條語句具有相同的縮進就可以了,換句話說連續(xù)的代碼如果又保持了相同的縮進那么它們屬于同一個代碼塊,相當于是一個執(zhí)行的整體。

當然如果要構造出更多的分支,可以使用if…elif…else…結構,例如下面的分段函數求值。

"""

分段函數求值

? ? ? ? 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))

當然根據實際開發(fā)的需要,分支結構是可以嵌套的,例如判斷是否通關以后還要根據你獲得的寶物或者道具的數量對你的表現給出等級(比如點亮兩顆或三顆星星),那么我們就需要在if的內部構造出一個新的分支結構,同理elif和else中也可以再構造新的分支,我們稱之為嵌套的分支結構,也就是說上面的代碼也可以寫成下面的樣子。

"""

分段函數求值

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))

說明:?大家可以自己感受一下這兩種寫法到底是哪一種更好。在之前我們提到的Python之禪中有這么一句話“Flat is better than nested.”,之所以提倡代碼“扁平化”是因為嵌套結構的嵌套層次多了之后會嚴重的影響代碼的可讀性,所以能使用扁平化的結構時就不要使用嵌套。



"""

2019.7.11

百分制度成績等級轉換

version:0.1

auther:碼奮

"""

socre=float(input("請輸入分數:"))

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('對應的等級是:',grade)


"""

2019.7.11

day 03 個人所得稅計算器

version: 0.1

auther:碼奮

"""

salary = float(input('本月收入: '))

insurance = float(input('五險一金: '))

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('個人所得稅: ¥%.2f元' % tax)

print('實際到手收入: ¥%.2f元' % (diff + 3500 - tax))


"""

2019.7.11

day 03 輸入三角形的邊長,如果能構成三角形則計算面積和周長

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('三角形的周長=',(a+c+b))

? ? p=(a+b+c)/2

? ? eare=math.sqrt(p*(p-a)*(p-b)*(p-c))

? ? print('三角形面積是',eare)

else:

? ? print('不能構成三角形!')

"""

2019.7.11

英制單位與公制單位互換

version:0.1

auther:碼奮

"""

?

value = float(input("請輸入長度:"))

Unit=input("請輸入單位:")

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("請輸入有效的單位!")

"""

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('學習')

elif face==4:

? ? print('練字')

elif face==5:

? ? print('去玩')

else :

? ? print('看電視')

---------------------

作者:碼奮

來源:CSDN

原文:https://cable-ching.blog.csdn.net/article/details/95508288

版權聲明:本文為博主原創(chuàng)文章,轉載請附上博文鏈接!

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容