python之選擇結構

2021-10-25 01:24:34 字數 4809 閱讀 4195

條件運算子

選擇結構的實現

選擇結構程式舉例

注:同一優先順序計算順序從右往左

邏輯運算的重要規則

測試運算子

成員運算子(in、not in)

成員運算子用於在指定的序列中查詢某個值是否存在。

n =[1

,2,3

,4,5

,'a']if

'a'in n:

print

('in')if

'a'not

in n:

print

('in'

)else

:print

('not in'

)# 輸出:

# in

# not in

身份測試(is、is not)

測試兩個變數是否指向同一物件

n =[1

,2,3

]m = n

if n is m:

print

('同一物件'

)else

:print

('不是同一物件'

)# 輸出:同一物件

m =[2,

2,2]

if n is m:

print

('同一物件'

)else

:print

('不是同一物件'

)# 輸出:不是同一物件

條件運算子

格式:

表示式1

if 表示式 else 表示式2

運算規則
先求if後面表示式的值,如果為true,則求表示式1,並以表示式1的值作為條件運算的結果,如果為false,以表示式2的值作為條件運算子結果。

x,y =40,

50z = x if x==y else y

print

('%06.2f'

%(z)

)#輸出:050.00

選擇結構的實現

單分支選擇結構

if 表示式:

語句塊

雙分支選擇結構
if 表示式:

語句塊else

: 語句塊

多分支選擇結構
if 表示式1

: 語句塊

elif 表示式2

: 語句塊

elif 表示式3

: 語句塊..

.elif 表示式n

語句塊 [

else

: 語句塊]

最後乙個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)

:print

('{}水仙花數'

.format

(x))

else

:print

('{}不是水仙花數'

.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:

print

("{}月有31天"

.format

(month)

)return

0if month in _30:

print

("{}與有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條件表示式中不允許使用賦...