练习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 e:e[1])
2)有一个字母的ASCII错了,修改为正确的值,并重新排序
dict1['o'] = 111
2.用最简洁的代码,自己生成一个大写字母 A-Z 及其对应的ASCII码值的字典dict2(使用dict,zip,range方法)
list1 = [chr(i).upper() for i in range(97,123)]
list2 = range(97,123)
dict2 = dict(zip(list1,list2))
合并如下:
dict2 = dict(zip([chr(i).upper() for i in range(97,123)],range(97,123)))
3.将dict2与第一题排序后的dict1合并成一个dict3
dict1.update(dict2)
dict3 = dict1
练习2
1.输入三个整数x,y,z,请把这三个数由小到大输出。
- 程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换, 然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
#!/usr/bin/python
x = input("x=")
y = input("y=")
z = input("z=")
list1 = [x,y,z]
x = min(list1)
list1.remove(x)
y = min(list1)
list1.remove(y)
z = list1[0]
print (x,y,z)
2.企业发放的奖金根据利润提成。利润(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:utf8
"""
10W --》1W
10-20W --》1.75W
20-40W --》3.75W
40-60W --》4.35W
60-100W --》4.95W
"""
I = input("Please input money$: ")
I = int(I)
if I >= 100.000:
A = (I-100)*0.01+4.95
elif 100.000>I>60.000:
A = (I-60)*0.015+4.35
elif 60.000>=I>40.000:
A = (I-40)*0.03+3.75
elif 40.000>=I>20.000:
A = (I-20)*0.05+1.75
elif 20.000>=I>10.000:
A = (I-10)*0.075+1
elif I<=10:
A = I*0.1
print("This year's award is %s" %A)