1. 程式人生 > >python分支結構(無switch結構)

python分支結構(無switch結構)

配對 註意 表達式 返回 ++ 相等 switch 即使 問題

#在if語句嵌套中,需要特別註意的else和if的配對問題。python編譯系統處理該問題的原則是:else 總是與同一語法層次中離他最近的尚未配對的if配對
#例如:

x=10

y=85

if x>20 or x<-10:

if y<100 or y>x:

print("Good")

else:

print("Bad")

num=int(input("請輸入一個數字:"))

if num%2==0:

if num%3==0:

print("你輸入的數字可以整除2和3")

else:

print("你輸入的數字可以整除2,但是不能整除3")

else:

if num%3==0:

print("你輸入的數字可以整除3,但是不能整除2")

else:

print("你輸入的數字,不能整除2和3")

#4.3.2真值測試;
#python與cC++在處理真值和邏輯運算的方式上有所不同。在python中:
#任何非0數字和非空對象都未真。
#數字0、空對象(如空列表[],空字典{})、None都為假;
#比較和相當測試返回true(真)或false(假)。
#邏輯運算and和or,會返回參與運算的真或假的對象。
#回顧:邏輯運算:not x:x非真即假,非假即真;
#x and y:雙真才為真;x or y:x 雙假才為假;

#1.比較和相等測試,總是返回true或false。
print(2<5)

print(2>5)

print(2==5)
#2 not 運算,not運算返回true或false。例如:
print(not True,not False)

print(not 0,not 1,not 2)

print(not ‘abc‘,not [1,2],not{‘a‘:12}) #非空對象為真;

print(not ‘‘,not[],not{}) #空的對象為假

#3.and和or,python中的and和or運算符總是返回參與運算的對象,而不True和False。Python在計算and運算時,總是按從左到右的順序計算。

#在找到第一個計算為假的對象,返回該對象,即使右側還有需要計算的對象,計算都結束。這種計算方式稱為短路計算。
print(2 and 0)

print([] and 2)

print(2 and {})

print([]and{})

print(2 and 5) #如果參與運算的對象都為真,則返回最後一個為真的對象。
print(5 and 2)
#or運算同樣執行短路計算,在找到第一個為真的對象時,返回該對象,計算結束。
print(0 or 2)

print(2 or [])

print(False or 5)

print([]or{})
print({}or[])
print(False or 5)
#3.3 if...elif 三元表達式
x=5
y=100
if x>y:
a=x
else:
a=y

print(a)
#該if語句,將x、y中較大值賦值給a,該語句可簡化為如下的if...els三元表達式。
#a=x if x>y else y
#python還支持從列表中挑選對象,其基本格式如下:

a=[x,y][f]

#f為假時,將x賦值給a,否則將y賦值給a。假前,真後
a=5
b=10
c=[a,b][a>b]
print(c)

python分支結構(無switch結構)