python练习册(四)
Duang~Duang~小编又来送练习题啦!每天练习不能放松的,我们今天继续。
题目一:
"""
一球从100米高度自由落下,每次落地后反跳回原高度的一半;
再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
"""
high=100
rs=high#需要算上100米自由下落的高度,到地面才算第一次反弹
i=1
while i<=10:
high /= 2
rs+=high*2if i==10:
print("第十次反弹%.10f米"%high)
rs-=high*2 #第十次落地时经过的距离,不计算第十次反弹+落地距离
i+=1
print("共经过%.10f米"%rs)
题目二:
"""
猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,
又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
"""
x=1
day=9 #从第九天开始一一向前计算每天吃的桃子
while day>0:
x=(x+1)*2 #前一天吃的桃子是今天桃子的 x/2-1=1 x=4
day-=1
print("第一天一共摘了%d个"%x)
题目三:
""" 购物车 功能要求: 要求用户输入总资产,例如:2000 显示商品列表,让用户根据序号选择商品, 加入购物车 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。 goods=[{"name": "电脑", "price": 1999},{"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20},{"name": "美女", "price": 998},] """ goods=[{"name": "电脑", "price": 1999},{"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20},{"name": "美女", "price": 998},] while True: money=input("请输入总资产:") if money.isdigit(): money=int(money) break else: print("输入的不是数字,请重试") print("-"*20+"商品列表"+"-"*20) for i in range(0,len(goods)): gid=i print(gid+1,goods[i]) while True: s=input("请输入你要购买商品序号,用,隔开") if s.endswith(","): print("输入错误,不能以,结尾") continue tmp_list=s.split(",") goods_car=[] for m in tmp_list: if m.isdigit(): m=int(m) goods_car.append(m) else: print("输入的不是数字序号,请重试!") break if not(1<=m<=len(goods)): print("输入的序号超过商品编号了,请重试!") break else: break total_money=0 for j in goods_car: price=goods[j-1].get("price") total_money+=price if total_money<money: print("购买成功!") else: print("账户余额不足!")