python基础--while循环和if判断练习

练习题

一、求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循环,猜年龄游戏升级版,有以下三点要求:

  1. 允许用户最多尝试3次
  2. 每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y, 就继续让其猜3次,以此往复,如果回答N或n,就退出程序
  3. 如果猜对了,就直接退出
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)
posted @ 2019-09-11 23:50  AllenCH  阅读(315)  评论(0编辑  收藏  举报