zoukankan      html  css  js  c++  java
  • python的一些面试题(2)

    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))
    
  • 相关阅读:
    dd是___元素
    【电商8】footer mod_service
    外边距塌陷问题
    隐藏display: ____;
    判断一个32位的整数的二进制有几个1
    8 switch case
    键盘录入
    两个整数的交换
    运算符
    java 异常报错总结
  • 原文地址:https://www.cnblogs.com/sening/p/10289566.html
Copyright © 2011-2022 走看看