题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。
程序分析:关键是计算出每一项的值。
列表生成式直接生成函数
def sn(base,times):
return sum([int(str(base)*x) for x in range(1,1+times)])
>>> sn(1,4)
1234
>>> sn(4,4)
4936
>>> sn(2,5)
24690
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
def hei(t,h):
c = -h
while t > 0:
c+=(h*2)
t -=1
h /=2
return h,c
>>> a=hei(10,100)
>>> print(f'第10次反弹高度:{a[0]}')
第10次反弹高度:0.09765625
>>> print(f'总高度:{a[1]}')
总高度:299.609375