题目一:求100-999中的“水仙花数”,“水仙花数”意为该数的各个位数的三次方之和等于本身,如153=1**3+5**3+3**3
new_list=[]
for i in range(100,1000):
sum=0
for j in str(i):
sum+=sum+int(j)**3
if sum==i:
new_list.append(i)
print new_list
结果:
[153, 370, 370, 371, 407]
题目二:字符串切片,原字符串为:“1a2b3c4d",求分别输出”abcd"和“1234”
方法一:
#encoding=utf-8
str="1a2b3c4d"
letter_list=[]
number_list=[]
for i in range(len(str)):
if i%2==0:
number_list.append(str[i])
else:
letter_list.append(str[i])
print "数字串是"+"".join(number_list)
print "字母串是"+"".join(letter_list)
方法二:
利用切片
#encoding=utf-8
str="1a2b3c4d"
print "输出数字串:"+str[::2]
new_list=list(str[::-2])
new_list.sort()
print "输出字母串:"+"".join(new_list)
题目三:完全数,如果一个数恰好等于它的因子之和,则称该数为“完全数”,又称完美数或完备数。 例如:第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加, 1+2+3=6。第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。
#encoding=utf-8
perfect_list=[]
for i in range(1,1000):
sum=0
for j in range(1,i):
if i%j==0 and j<i:
sum=sum+j
if sum==i:
perfect_list.append(i)
print "1000以内的完全数有:%s"%perfect_list
结果为:
[6, 24, 28, 496]
题目四:求一个数的阶乘,比如:求10!
方法一:利用lambda和reduce
#encoding=utf-8
n=10
result=reduce(lambda x,y:x*y,range(1,n+1))
print "10!结果为:%s"%result
方法二:自己写一个递归方法
#encoding=utf-8
def recursion(n):
if n=1:
return 1
else:
return n*recursion(n-1)
n=10
print "输出结果为:"+str(recursion(n))
结果:
输出结果为:3628800
题目五:已知一个数列:1、1、2、3、5、8、13、。。。。的规律为从3开始的每一项都等于其前两项的和,这是斐波那契数列。求满足规律的1000以内的所以数据
j=0
i=1
new_list=[]
while i<1000:
new_list.append(i)
j,i=i,i+j
print new_list
结果:[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987]