练习题
一、求0到100以内除去[22,46,60,96]的偶数的和
count = 0
ls1 = [22,46,60,96]
num = 0
while count < 100:
count += 2
if count in ls1:
continue
num += count
print(num)
二、猜年龄,三次机会,都猜错就叫他大笨蛋。
a = 18
count = 0
while count < 3 :
age = int(input('猜猜黎宝宝多大了:'))
if age > a :
print('猜大了')
elif age < a :
print('猜小了')
elif age == a :
print('恭喜你,猜对啦')
break
count += 1
else:
print('你个大笨蛋')
三、年龄筛选
while 1 :
age = int(input('你多大了:'))
if age < 18 :
print('不好意思,不接受未成年')
break
elif 18 < age < 25 :
print('心动表白')
break
elif 25 < age < 45 :
print('阿姨好')
break
elif age > 45:
print('奶奶好')
break
四、0 到 100以内的奇数和
count = 1
sums = 0
while count < 100:
sums += count
count = count + 2
print(sums)
五、预习while循环,猜年龄游戏升级版,有以下三点要求:
- 允许用户最多尝试3次
- 每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y, 就继续让其猜3次,以此往复,如果回答N或n,就退出程序
- 如果猜对了,就直接退出
count = 0
age = 18
ans1 = ['Y','y']
ans2 = ['N','n']
while count < 3:
count = count + 1
print(f'第{count}次')
age_inp = int(input('猜猜杨超越多大了: '))
if age_inp != age:
print('猜错了')
if count == 3:
print('哎呀,你真笨')
ans = input('还要继续玩儿吗?继续请输入Y,不继续请输入N:_')
if ans in ans1:
count = 0
if ans in ans2:
print('好吧,不跟你玩儿了')
break
elif age_inp == age:
print('你真棒!')
break
六、题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;高于40万元的部分,可提成3%。从键盘输入当月利润,求应发放奖金总数?
0 -- 10 10%
10 -- 20 7.5%
20 -- 40 5%
40 -- 3%
p = int(input('当月利润:'))
if p <= 100000:
print('本月奖金为:', p * 0.1 )
elif 100000 < p <= 200000:
print('本月奖金为:',100000 * 0.1 + (p - 100000) * 0.075 )
elif 200000 < p <= 400000:
print('本月奖金为:',100000 * 0.1 + 100000 * 0.075 + (p - 200000) * 0.05)
else:
print('本月奖金为:',100000 * 0.1 + 100000 * 0.075 + 200000 * 0.075 +(p - 400000) * 0.03)
七、快递运费首重6元,超过则加收3元/kg(首重为1kg,不满则按1kg计算),要求输入货物重量,计算运费
import math
w0 = 1
p0 = 6
p = 3
w = float(input('货物重量是(Kg):'))
if w <= w0 :
print('本单运费为:',p0)
if w > w0 :
w = math.ceil(w)
print('本单运费为:',p0 + p * (w - 1))
八、个税计算
sala = float(input('请输入税前薪资:'))
secu = sala * 0.22
tax0 = sala - sala * 0.22 - 5000
if sala > 5000:
if tax0 <= 3000:
tax = tax0 * 0.03
print(f'个人所得税为:{tax}元')
elif 3000 < tax0 <= 12000:
tax = tax0 * 0.1 - 210
print(f'个人所得税为:{tax}元')
elif 12000 < tax0 <= 25000:
tax = tax0 * 0.2 - 1410
print(f'个人所得税为:{tax}元')
elif 25000 < tax0 <= 35000:
tax = tax0 * 0.25 - 2660
print(f'个人所得税为:{tax}元')
elif 35000 < tax0 <= 55000:
tax = tax0 * 0.3 - 4410
print(f'个人所得税为:{tax}元')
elif 55000 < tax0 <= 80000:
tax = tax0 * 0.35 - 7160
print(f'个人所得税为:{tax}元')
elif tax0 > 80000:
tax = tax0 * 0.45 - 15160
print(f'个人所得税为:{tax}元')
else:
tax = 0
print(f'个人所得税为:{tax}元')
九、一个球从100米高度自由落下,每次落地后弹回原来高度的一半,求它在第10次落地时,共经过多少米?接着能弹多高?
S = 0
count = 1
height = 100
while count <= 10:
S += height * 2
height /= 2
count += 1
print(height)
print(S - 100)
打印结果为:
0.09765625
299.609375
十、有一个分数数列,1/2,2/3,4/4,8/5,16/6...,求前10项的和
i = 1
a = 1
b = 2
s = 0
while i <= 10:
c = a / b
s += c
a *= 2
b += 1
i += 1
print(s)
十一、猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,第二天早上又将剩下的桃子吃掉一半。以后每天早上都吃前一天剩下的一半。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少个桃子
i = 9
a = 1
while i > 0:
a *= 2
i -= 1
print(a)