专栏首页python3Python中的一些面试题(3)

Python中的一些面试题(3)

怎么样在元组和列表间转换?

list(tuple)
tuple(list)

如何对一个序列进行反转?

#方法一:
#如果是一个列表
listdata = [1,3,4,5]
listdata.reverse()
#但是这方法有一个缺点就是直接修改了原来的list
#可以先copy一个再反转
copylist = listdata[:]
copylist.reverse

#方法二
#如果不是列表的话
sequence = "zhang"
tmplist=list()
for i in range(len(sequence)-1, -1, -1):
    tmplist.append(sequence[i])
print ''.join(tmplist)

#方法三
listdata=[1,3,4]
#python2.3以后才支持这种切片
print listdata[::-1]

#方法四
class Rev(object):
    def __init__(self,seq):
        self.listdata = seq
    def __len__(self):
        return len(self.listdata)
    def __getitem__(self,i):
        return self.listdata[-(i+1)]

for i in Rev([6,2,3,4,5]):
    print i

怎么根据一个另外一个列表的值来对这个列表进行排序?

list1 = [6,4,5,2]
list2 = ['e','b','c','a']
#zip函数接受一切可迭代的参数,并将其打包成元组
pairs = zip(list1,list2)
#注意:sort默认是对第一个值进行排序
#这里是安装list1的值来对list2进行排序
pairs.sort()
result = [ x[1] for x in pairs ]

什么是委托?

是一种面向对象的设计模式,假如我想改变某个对象的一写方法的行为的话,可以创建一个类来实现对这个方法的委托,改变这个方法的一些行为。

例子:改变文件对象的写入方法的行为
class UpperOut:
        def __init__(self, outfile):
                self.__outfile = outfile
        def write(self, s):
                self.__outfile.write(s.upper())
        def __getattr__(self, name):
                return getattr(self.__outfile, name)

f = open('1.txt','a+')
test = UpperOut(f)
test.write('s')
test.close()
#通过类UpperOut重写了write实现了对文件对象的写方法的改变,
#通过__getattr__来实现了对文件对象的其他属性的委托


如何去调用超类(父类或者叫做基类)的方法?
如果是经典类的话就直接使用父类名字.方法名(self,[par,...])
如果是新式类的话就使用super(类名,self).父类方法
经典类和新式类的区别就在于是否是继承与object元类的

如何在python类中创建静态变量和静态方法?

#方式一:
class C(object):
        count = 0
        def __init__(self):
                C.count = C.count + 1
        def getcount():
                return C.count
        getcount = staticmethod(getcount)


#其中count是静态变量,getcount是静态方法

#方式二:
class C(object):
        count = 0
        def __init__(self):
                C.count = C.count + 1
        def getcount(cls):
                return cls.count
        getcount = classmethod(getcount)

怎么样删除一个文件?

 os.remove(filename) 
 os.unlink(filename)

python怎么通过脚步来发送邮件?

#下面的代表只能在linux下运行,借助linux上自带的mail server来发信
import sys, smtplib
fromaddr = raw_input("From: ")
toaddrs = raw_input("To: ").split(',')
print "Enter message, end with ^D:"
msg = ''
while 1:
        line = sys.stdin.readline()
        if not line:
                break
        msg = msg + line
# The actual mail send
server = smtplib.SMTP('localhost')
server.sendmail(fromaddr, toaddrs, msg)
server.quit()

python中生成随机数的函数?

import random
random.random()
random.randint()

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 数据结构[Python--Stack]

    难得有些许空闲,看一下Python的数据结构--Stack,现将几个典型示例进行总结!

    py3study
  • Python(3)

    (1)、概念:函数是python为了代码最大程度地重用和最小代码冗余而提供的基本程序结构。

    py3study
  • Python——编写类装饰器

    类装饰器类似于函数装饰器的概念,但它应用于类,它们可以用于管理类自身,或者用来拦截实例创建调用以管理实例。

    py3study
  • 数据结构[Python--Stack]

    难得有些许空闲,看一下Python的数据结构--Stack,现将几个典型示例进行总结!

    py3study
  • [快学Python3]类基础

    概述 Python从设计之初就是面向对象的编程语言,所以在Python中创建一个类和对象是轻而易举的。 本文就Python的面向对象编程进行分享。 几个基本的概...

    苦叶子
  • 《Python基础教程》 读书笔记 第七章 更加抽象(上)

    面向对象程序设计中的术语对象(object)基本上可以看做数据(特性)以及由一系列可以存取、操作这些数据的方法所组成的集合。使用对象替代全局变量和函数的原因可能...

    统计学家
  • JavaScript|日期对象

    在JavaScript中没有日期类型的数据,但我们在开发的过程中经常需要处理日期,所以在这里我将在这里给展示大家如何用日期对象(Date)来操作日期和时间。

    算法与编程之美
  • Python中线程Timeout的使用

    Python中关于Timeout有另一种用起来更简便的方法,即使用装饰器。这种方式是使用sys模块的settrace等方法重构了python的threadin...

    py3study
  • useful-scripts

    python使用相对简单,快速便捷,很适合作为脚本开发;作为"资深"的sub3/vscode控,使用编辑器鞋脚本再也适合不过,vscode中的调试功能太好用啦:

    LiosWong
  • Angular4记账webApp练手项目之一(利用angular-cli构建Angular4.X项目)

    官方文档 :https://github.com/angular/angular-cli

    易兒善

扫码关注云+社区

领取腾讯云代金券