8.一个球从100m高度落下,每次落地反弹回原高度的一半,再落下,求第10次落地时共经过多少米?第10次反弹多高?
list = []
h = 100
h_sum = 100
for i in range(1,11):#从100m落下是第一次,第一次反弹是50m
h_sum += h
h /= 2
list.append(h)
print (list)
print (h)
print (h_sum)
print(sum(list)*2+100) #每次反弹高度走两遍加上初始100
这里一种是把每次反弹高度加入到列表
一种是直接最后使用变量求和
输出结果
接下来是上次题目中 的优化,优化1:减少一个print
print("一共%d个整数排序结果如下:\n %s"%(len(num_list),num_list)) #两个print合并
第3题的数字排序解决字符转化报错优化,
改为先判断字符内容再转换
使用try…except遇错不执行
增加重新输入数字继续排序
num_list = []
i =1
while True:
inmsg = input("请输入第%d个整数,输入p结束输入开始排序:" %i)
try:
if inmsg == "p" or inmsg == "P":
num_list.sort()
print("一共%d个整数排序结果如下:\n %s"%(len(num_list),num_list)) #两个print合并
resatrt = input("继续加入数字输入Y|重新开始输入N:" )
if resatrt =="Y"or resatrt =="y":
continue
elif resatrt =="N"or resatrt =="n":
i = 1
num_list.clear()
else:
break
elif type(float(inmsg))== float or type(int(inmsg))== int():
i += 1
inmsg = eval(inmsg)
num_list.append(inmsg)
except:
print("输入不合法,请输入数字")
输出结果
请输入第1个整数,输入p结束输入开始排序:1
请输入第2个整数,输入p结束输入开始排序:e
输入不合法,请输入数字
请输入第2个整数,输入p结束输入开始排序:23.0
请输入第3个整数,输入p结束输入开始排序:8.9
请输入第4个整数,输入p结束输入开始排序:-9.87
请输入第5个整数,输入p结束输入开始排序:p
一共4个整数排序结果如下:
[-9.87, 1, 8.9, 23.0]
继续加入数字输入Y|重新开始输入N:n
请输入第1个整数,输入p结束输入开始排序:d
输入不合法,请输入数字
请输入第1个整数,输入p结束输入开始排序:p
一共0个整数排序结果如下:
[]
继续加入数字输入Y|重新开始输入N:k
未完待续
领取专属 10元无门槛券
私享最新 技术干货