码迷,mamicode.com
首页 > 编程语言 > 详细

python的一些面试题(2)

时间:2019-01-18 21:27:32      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:循环   运行   turn   生成   inter   int   方式   code   als   

4.Python Ctrl+C会引发什么类型的异常

正在运行的程序发送Ctrl+C键盘消息会引发KeyBoardInterrupt异常,他的基类异常是BaseException。

5.编写一个测试回文,从左往右读和从右往左读结果一样

#-*- coding: utf-8 -*-

#直接翻转列表
tmp = 'axxa'
print tmp == tmp[::-1]

x = [1,1,1,]
print x,reversed(x),type(reversed(x))
print x == list(reversed(x))

def isEques(tmp):
    flag = True
    lens = len(tmp)
    count = 0
    while count < lens/2:
        if tmp[count] != tmp[lens - count -1]:
            flag = False
        count += 1
        if not flag:
            break
    if flag:
        print "{} 是回文".format(tmp)
    else:
        print "{} 不是回文".format(tmp)

isEques('axxxxxxxxxxxxxxxxxa')
isEques('axxddxxa')

6.斐波那契数列的三种实现方式

  • 函数递归
  • while 或者 for 循环
  • yield 生成器的方式
#-*- coding: utf-8 -*-

#斐波那契数列的几种实现方式


#递归
def feibonaqie(x):
    if x == 1 or x == 2:
        return x
    return feibonaqie(x -1) + feibonaqie(x - 2)

res = list()

for i in range(1,12):
    res.append(feibonaqie(i))
    # print feibonaqie(i)
print res


#循环的方式实现
def fba(n):
    b,a = 1,1
    res = list()
    if n <= 2:
        res.append(1)
    else:
        # res.append(1)
        for _ in range(1,n - 1):
            a,b = b,a+b
            res.append(a)
    return res
print fba(13)

#生成器的方式实现

def febyil(n):
    i,num1,num2 = 0,1,1
    while i < n - 1:
        yield num2
        i += 1
        num1,num2 = num2,num1+num2
print febyil(13)
print list(febyil(13))

python的一些面试题(2)

标签:循环   运行   turn   生成   inter   int   方式   code   als   

原文地址:https://www.cnblogs.com/sening/p/10289566.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!