11-21作業

練習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碼的值排序
#!/usr/bin/python

-- coding:utf-8 --

list = []
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}
f = zip(dict1.values(),dict1.keys())
dict2 = sorted(f)
dict2 = dict(dict2)
print dict2
dict3 = zip(dict2.values(),dict2.keys())
dict3 = dict(dict3)
print dict3

2) 有一個字母的ASCII錯了,修改爲正確的值,並重新排序
錯誤的爲o字母的ascII碼 正確的是111
#!/usr/bin/python

-- coding:utf-8 --

list = []
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}
dict1['o']=111
f = zip(dict1.values(),dict1.keys())
dict2 = sorted(f)
dict2 = dict(dict2)
print dict2

dict3 = zip(dict2.values(),dict2.keys())
print dict3

  1. 用最簡潔的代碼,自己生成一個大寫字母 A-Z 及其對應的ASCII碼值的字典dict2(使用dict,zip,range方法)
    #!/usr/bin/python

    -- coding:utf-8 --

list = [chr(i) for i in range(ord("A"),ord("Z")+1)]
print list

list2 = [i for i in range(ord("A"),ord("Z")+1)]
print list2

dict2 = zip(list,list2)
print dict(dict2)

  1. 將dict2與第一題排序後的dict1合併成一個dict3

#!/usr/bin/python

-- coding:utf-8 --

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': 111, 'n': 110, 'q': 113, 'p': 112, 's': 115, 'r': 114, 'u': 117, 't': 116, 'w': 119, 'v': 118, 'y': 121, 'x': 120, 'z': 122}
dict2 = {'A': 65, 'C': 67, 'B': 66, 'E': 69, 'D': 68, 'G': 71, 'F': 70, 'I': 73, 'H': 72, 'K': 75, 'J': 74, 'M': 77, 'L': 76, 'O': 79, 'N': 78, 'Q': 81, 'P': 80, 'S': 83, 'R': 82, 'U': 85, 'T': 84, 'W': 87, 'V': 86, 'Y': 89, 'X': 88, 'Z': 90}

dict3 = dict(dict1.items()+dict2.items())
print dict3

練習2

  1. 輸入三個整數x,y,z,請把這三個數由小到大輸出。 1.程序分析:我們想辦法把最小的數放到x上,先將x與y進行比較,如果x>y則將x與y的值進行交換, 然後再用x與z進行比較,如果x>z則將x與z的值進行交換,這樣能使x最小。
    #!/usr/bin/python

    -- coding:utf-8 --

x = raw_input("請輸入x的值: ")
y = raw_input("請輸入y的值: ")
z = raw_input("請輸入z的值: ")

list = [x,y,z]
for i in range(len(list)):
for j in range(i+1,len(list)):
if list[i] > list[j]:
list[i],list[j] = list[j],list[i]
print list

  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,求應發放獎金總數?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章