Home 分支和循环
Post
Cancel

分支和循环

7-1 谁的年龄大

班上的学生站成一排,现在让你找出班里最大的年龄,同时算出比平均年龄大多少。你能做到吗?试试看吧!

输入格式:

输入若干学生年龄,以负数作为结束

输出格式:

输出这几个学生的最大年龄,并计算出超出平均年龄(取整数)多少岁

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 写法一:
st_age = []
while True:
    temp_age = float(input())
    if temp_age <= 0:
        break
    st_age.append(temp_age)
av_age = float(sum(st_age[0:])) // float(len(st_age))
t = 0.0
for x in range(len(st_age)):
    for i in range(len(st_age)-1):
        if st_age[i] > st_age[i+1]:
            t = st_age[i]
            st_age[i+1] = st_age[i]
            st_age[i+1] = t
print("最大年龄是:%.0f,超出平均年龄%d岁" % (st_age[-1], st_age[-1]-av_age), end='')
1
2
3
4
5
6
7
8
9
10
# 写法二
st_age = []
while True:
    temp_age = float(input())
    if temp_age <= 0:
        break
    st_age.append(temp_age)
av_age = float(sum(st_age[0:])) // float(len(st_age))
max_age = max(st_age)
print("最大年龄是:%.0f,超出平均年龄%.0f岁" % (max_age, float(max_age-av_age)), end='')
1
2
3
4
5
6
7
8
9
st_age = []
while True:
    temp_age = int(input())
    if temp_age <= 0:
        break
    st_age.append(temp_age)
av_age = sum(st_age[0:]) // len(st_age)
max_age = max(st_age)
print("最大年龄是:%d,超出平均年龄%d岁" % (max_age,max_age-av_age), end='')

7-2 输出队形

输出一个m行n列的队形,每个位置的数字为e。

输入格式:

m n e

输出格式:

输出队形数字,每个数字后面有一个空格

1
2
3
4
5
6
7
8
zfx = []
for i in range(0,3):
    zfx.append(eval(input()))

for hang in range(0,zfx[0]):
    for lie in range(0,zfx[1]):
            print("%d"%(zfx[2]),end=' ')
    print()

7-3 奖金计算,循环与多分支(高教社,《Python编程基础及应用》习题6-5)

企业发放的奖金根据利润提成。利润低于或等于100,000元的,奖金可提10%;利润高于100,000元,低于200,000(100,000 < p <=200,000)时,100,000元及以内部分按10%提成,高于100,000元的部分,可提成7.5%; 200,000 < p <= 400,000时,200,000元及其以内的部分仍按上述办法提成(下同),高于200,000元的部分按5%提成; 400,000 < p <=600,000元时,高于400,000元的部分按3%提成; 600,000 < p <=1,000,000时,高于600,000元的部分按1.5%提成; p >1,000,000时,超过1,000,000元的部分按1%提成。 按上述需求,编写一个程序,该程序从键盘输入当月利润p,求应发奖金数。

输入格式:

利润总额(浮点数)

输出格式:

奖金数(保留两位小数)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
p = float(input())
bonus = 0.0
if p<=100000:
    bonus = p * 0.1
elif 100000 < p <=200000:
    bonus = 100000 * 0.1 + (p-100000) * 0.075
elif 200000 < p <= 400000:
    bonus = 100000 * 0.1 + 100000 * 0.075 + (p-200000)*0.05
elif 400000 < p <=600000:
    bonus = 100000 * 0.1 + 100000 * 0.075 + 200000*0.05 + (p-400000)*0.03
elif 600000 < p <=1000000:
    bonus = 100000 * 0.1 + 100000 * 0.075 + 200000*0.05 + 200000*0.03 + (p-600000)*0.015
elif p >1000000:
    bonus = 100000 * 0.1 + 100000 * 0.075 + 200000*0.05 + 200000*0.03 + 400000*0.015 + (p-1000000)*0.01

print("%.2f"%bonus,end='')
This post is licensed under CC BY 4.0 by the author.