1. 程式人生 > >python的一些面試題(2)

python的一些面試題(2)

false form exce urn 三種 block ret exceptio for 循環

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)