1.求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字,n是项数。例如:2+22+222+2222+22222(此时共有a=2,n=5)
from functools import reduce
Tn = 0
Sn = []
n = int(input('n = :'))
a = int(input('a = :'))
for count in range(n):
Tn = Tn + a
a = a * 10
Sn.append(Tn)
print (Tn)
S = reduce(lambda x,y : x + y,Sn)#注意reduce和匿名函数的用法,累加
print (S)
2.一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程 找出1000以内的所有完数。
for j in range(2,1001):
l = []
n = -1
s = j
for i in range(1,j):
if j % i == 0:
n += 1
s -= i
l.append(i)
if s == 0:
print (j)
for i in range(n):
print(l[i],end=' ')
print(l[n])
3.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
h=100
sum=0
for i in range(1,11):
sum+=1.5*h
h=0.5*h
print('共经过%f米' % sum)
print('第十次弹起高度为%f' % h)
4.斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。求斐波那契数列的第10项
def fib(n):
if n == 1 or n == 2:
return 1
return fib(n - 1) + fib(n - 2)
# 输出了第10个斐波那契数列
print(fib(10))
5.将一个列表的数据复制到另一个列表中
a = [1, 2, 3]
b = a[:]#不能用b=a,否则a中元素变动,会影响b
print b
6.暂停5秒输出
import time
myD = {1: 'a', 2: 'b'}
for key, value in dict.items(myD):
print (key, value)
time.sleep(5) # 暂停 5 秒
7.暂停5秒输出,并格式化当前时间。
import time
print (time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))
# 暂停5秒
time.sleep(5)
print (time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))
8.有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?斐波那契数列(1,1,2,3,5,8,13,21)
f1 = 1
f2 = 1
for i in range(1,22):
print ('%12ld %12ld' % (f1,f2))
if (i % 3) == 0:
print ('')
f1 = f1 + f2
f2 = f1 + f2
9.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
x2 = 1
for day in range(9,0,-1):
x1 = (x2 + 1) * 2
x2 = x1
print (x1)
10.打印如下图案
*
***
*****
*******
*****
***
*
for i in range(4):
for j in range(2 - i + 1):
print(end=' ')
for k in range(2 * i + 1):
print('*',end='')
print('')
for i in range(3):
for j in range(i + 1):
print(end=' ')
for k in range(4 - 2 * i + 1):
print('*',end='')
print('')