python的一些面试题
Posted sening
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python的一些面试题相关的知识,希望对你有一定的参考价值。
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的一些面试题的主要内容,如果未能解决你的问题,请参考以下文章