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:
- 现有一个字典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])
- 用最简洁的代码,自己生成一个大写字母 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))
- 将dict2与第一题排序后的dict1合并成一个dict3
dict3 = dict(dict2.items()+dict1.items())
练习2:
- 输入三个整数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
- 企业发放的奖金根据利润提成。利润(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