條件運算子
選擇結構的實現
選擇結構程式舉例
注:同一優先順序計算順序從右往左
邏輯運算的重要規則
測試運算子
成員運算子(in、not in)
成員運算子用於在指定的序列中查詢某個值是否存在。
身份測試(is、is not)n =[1
,2,3
,4,5
,'a']if
'a'in n:
('in')if
'a'not
in n:
('in'
)else
('not in'
)# 輸出:
# in
# not in
測試兩個變數是否指向同一物件
條件運算子n =[1
,2,3
]m = n
if n is m:
('同一物件'
)else
('不是同一物件'
)# 輸出:同一物件
m =[2,
2,2]
if n is m:
('同一物件'
)else
('不是同一物件'
)# 輸出:不是同一物件
格式:
運算規則表示式1
if 表示式 else 表示式2
先求if後面表示式的值,如果為true,則求表示式1,並以表示式1的值作為條件運算的結果,如果為false,以表示式2的值作為條件運算子結果。
選擇結構的實現x,y =40,
50z = x if x==y else y
('%06.2f'
%(z)
)#輸出:050.00
單分支選擇結構
雙分支選擇結構if 表示式:
語句塊
多分支選擇結構if 表示式:
語句塊else
: 語句塊
最後乙個else 可以不寫if 表示式1
: 語句塊
elif 表示式2
: 語句塊
elif 表示式3
: 語句塊..
.elif 表示式n
語句塊 [
else
: 語句塊]
選擇結構的巢狀
if 表示式1:
if 表示式2
: 語句塊
else
: 語句塊
還有其他的就省略了if 表示式1:
if 表示式2
: 語句塊
else
: 語句塊
選擇結構程式舉例
水仙花數
輸入乙個整數,判斷它是否為水仙花數。所謂水仙花數,指這樣的一些3位整數:各位數字的立方和等於該數本身,例如153 = 1^3 + 5^3 + 3^3 ,因此153是水仙花數。
def
fun():
x =int(
input
("請輸入乙個3位數整數"))
# input 函式返回值為字串,所以需要強制轉換
x1 = x %
100 x2 =
(x /10)
%10x3 = x %
10if
(x == x1**
3+ x2**
3+ x3**3)
('{}水仙花數'
.format
(x))
else
('{}不是水仙花數'
.format
(x))
return
0def
main()
: fun(
)main(
)
時間輸出輸入:請輸入乙個3位數整數153
輸出:153不是水仙花數
輸入乙個時間(小時:分鐘:秒),輸出該時間經過5分30秒後的時間。
工資計算def
fun(hour,minute,second)
: second +=
30if second >60:
second -=
60 minute +=
1 minute +=
5if second >60:
minute -=
60 hour +=
1while hour >24:
hour -=
24print
('{}:{}:{}'
.format
(hour,minute,second)
)def
main()
: hour =
int(
input
("請輸人小時:"))
minute =
int(
input
("請輸入分鐘:"))
second =
int(
input
("請輸入秒:"))
fun(hour,minute,second)
main(
)# 輸入:
# 請輸人小時:8
# 請輸入分鐘:12
# 請輸入秒:56
# 輸出:
# 8:18:26
(1)工作時間超過120小時,超過部分加發15%
(2)工作時間低於60小時,扣發700元
(3)其餘按84元每小時計發。
輸入員工的工號和該員工的工作時數,計算應發工資:
月的天數def
fun(gh,gz)
:sum=0
if gz >
120:
sum+=
(gz-
120)*84
*1.15
+ gz*
84else
:if gz>=60:
sum= gz*
84else
:sum
= gz*84-
700print
("{}號職工應發工資{}"
.format
(gh,
sum)
)def
main()
: gh,gz =
eval
(input
("分別輸入工號和工作時長,以逗號分隔"))
fun(gh,gz)
main(
)#輸入:
# 分別輸入工號和工作時長110,60
#110號職工應發工資5040
輸入年月,求該月的天數
每年 1 3 5 7 8 10 12月有31天,4 6 9 11月有30天,閏年2月29天,平年2月28天
年份能被4整除,但不能被100整除,或者能被400整除的年均是閏年
def
fun(year,month)
: _31 =[1
,3,5
,7,8
,10,12
] _30 =[4
,6,9
,7]if month in _31:
("{}月有31天"
.format
(month)
)return
0if month in _30:
("{}與有30天"
.format
(month)
)return
0 flag =
(year %4)
==0and(year %
100)!=0
or year %
400==
0print
("2月有{}天"
.format(29
if flag else28)
)def
main()
: year =
int(
input
("year="))
month =
int(
input
("month="))
fun(year,month)
main(
)# 輸入:
# year=2014
# month=12
# 輸出:
# 12月有31天
# 輸入:
# year=2000
# month=2
# 輸出:
# 2月有29天
python之選擇結構(2)
雙分支結構語法格式 if 條件表示式 語句1 語句塊1 else 語句2 語句塊2 s input 請輸入乙個數字 if int s 10 print s是個小於10的數字 else print s是大於10的數字 三元條件運算子 三元條件運算子語法格式 條件為真是的值 if 條件表示式 else ...
選擇結構之對比
程式一 include int main else leap 1 else leap 0 if leap printf d is year else printf d is not year printf a leap year.n return 0 程式二 include int main emm...
Python選擇結構if if else
根據條件表示式的值確定下一步流程。條件表示式的值只要不是false 0 0.0 0j 空值none 空列表 空元組 空集合 空字典 空字串 空range物件等其他空迭代物件。python直譯器都會認為與true等價。所有python合法表示式都可以作為條件表示式。python條件表示式中不允許使用賦...