python常见面试题

题目一:求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]

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值