1. 程式人生 > >python自動化運維學習第三天--if流程控制

python自動化運維學習第三天--if流程控制

python流程控制 if

if語句

if expression:
    statement
elif expression:
    statement
else:
    statement

else和elif語句塊可以沒有,elif可以有多個,if和else只能有一個。if條件語句後要加冒號,下邊是if語句的程式碼塊,程式碼塊要縮排,建議是4個空格
當if條件判斷語句成立時才會執行if下的程式碼塊,否則依次往下判斷elif的條件語句,成立時才會執行相應的程式碼塊,只有當所有條件判斷語句都不成立時才會執行else下的程式碼塊。
在python中邏輯值包含兩個值:

  • True:表示非空的值,包括string、tuple、list、set、dictionary等所有非零值
  • False:表示0、None、空值等

python中1代表true,0代表false
raw_input用來接收使用者輸入

練習1:

  1. 現有一個字典dict1 儲存的是小寫字母a-z對應的ASCII碼
    dict1 = {‘a’: 97, ‘c’: 99, ‘b’: 98, ‘e’: 101, ‘d’: 100, ‘g’: 103, ‘f’: 102, ‘i’: 105, ‘h’: 104, ‘k’: 107, ‘j’: 106, ‘m’: 109, ‘l’: 108, ‘o’: 96, ‘n’: 110, ‘q’: 113, ‘p’: 112, ‘s’: 115, ‘r’: 114, ‘u’: 117, ‘t’: 116, ‘w’: 119, ‘v’: 118, ‘y’: 121, ‘x’: 120, ‘z’: 122}
    1) 將該字典按照ASCII碼的值排序
    sorted(dict1.items(),key=lambda dict1:dict1[1])

    2) 有一個字母的ASCII錯了,修改為正確的值,並重新排序
dict1['o'] = 111
sorted(dict1.items(),key=lambda dict1:dict1[1])
  1. 用最簡潔的程式碼,自己生成一個大寫字母 A-Z 及其對應的ASCII碼值的字典dict2(使用dict,zip,range方法)
a = [i for i in range(65,91)]
b = []
for i in a:
    b.append(chr(i))
dict2=dict(zip(b,a))
  1. 將dict2與第一題排序後的dict1合併成一個dict3
    dict3 = dict(dict2.items()+dict1.items())

練習2:

  1. 輸入三個整數x,y,z,請把這三個數由小到大輸出。 程式分析:我們想辦法把最小的數放到x上,先將x與y進行比較,如果x>y則將x與y的值進行交換, 然後再用x與z進行比較,如果x>z則將x與z的值進行交換,這樣能使x最小。
#!/usr/bin/python
# -*- coding:utf-8 -*-
i = 0
while True:
    if i < 3:
        try:
            x,y,z = map(int,raw_input("請輸入三個整數:").split())
            break
        except:
            i+=1
            print "輸入錯誤,請重新輸入!"
            continue
    else:
        print "錯誤次數太多,退出!"
        exit()
if x > y:
    x,y = y,x
if x > z:
    x,z = z,x
if y > z:
    y,z = z,y
print x,y,z
  1. 企業發放的獎金根據利潤提成。利潤(I)低於或等於10萬元時,獎金可提10%;利潤高於10萬元,低於20萬元時,低於10萬元的部分按10%提成,高於10萬元的部分,可提成7.5%;20萬到40萬之間時,高於20萬元的部分,可提成5%;40萬到60萬之間時高於40萬元的部分,可提成3%;60萬到100萬之間時,高於60萬元的部分,可提成1.5%,高於100萬元時,超過100萬元的部分按1%提成,從鍵盤輸入當月利潤I,求應發放獎金總數?
#!/usr/bin/python
# -*- coding:utf-8 -*-
while True:
    try:
        i = int(raw_input("請輸入當月利潤:"))
        break
    except:
        print "輸入有誤,請重新輸入!"
        continue
t = 0
if i <= 100000:
    t = i * 0.100
elif 100000 < i <= 200000:
    t = 100000 * 0.100 + (i-100000) * 0.075
elif 200000 < i <= 400000:
    t = 100000 * 0.100 + (200000-100000) * 0.075 + ( i - 200000 ) * 0.05
elif 400000 < i <= 600000:
    t = 100000 * 0.100 + (200000-100000) * 0.075 + (400000-200000) * 0.05 + ( i - 400000 ) * 0.03
elif 600000 < i <= 1000000:
    t = 100000 * 0.100 + (200000-100000) * 0.075 + (400000-200000) * 0.05 + (600000-400000) * 0.03 + ( i - 600000 ) * 0.015
else:
    t = 100000 * 0.100 + (200000-100000) * 0.075 + (400000-200000) * 0.05 + (600000-400000) * 0.03 + (1000000-600000) * 0.015 + ( i - 1000000 ) * 0.01
print "應發獎金為 %s" % t