面试题



     
6.zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
 zip 方法在 Python 2 和 Python 3 中的不同:在 Python 3.x 中为了减少内存,zip() 返回的是一个对象。
如需展示列表,需手动 list() 转换。 ''' 现有两个元组,(('a'),('b'),(('c'),('d')) 请把他变成[('a','c'),('b','d')] ''' t1=(('a'),('b')) t2=(('c'),('d')) print(list(zip(t1,t2))) '''
7.静态函数(@staticmethod) : 即静态方法,主要处理与这个类的逻辑关联,它是不可以访问实例变量或类变量的。

类函数(@classmethod): 即类方法, 只能访问类变量,不能访问实例变量 , 类方法通过@classmethod装饰器实现。

成员函数 : 实例的方法, 只能通过实例进行调用,若需通过类名来调用,则应申明为类方法。

属性函数:通过@property把一个方法变成一个静态属性。

具体应用:

日期的方法, 可以通过实例化(__init__)进行数据输出, 传入参数self;

可以通过 类的方法 (@classmethod) 进行数据转换, 传入参数cls;

可以通过 静态方法(@staticmethod)进 行数据验证;

1.Python里的reduce函数有什么用法 from functools import reduce
def fun(x,y):
  return 10*x+y
  l=reduce(fun,(1,2,3,4))
 
8.,示例说明args和**kwargs

*args(表示的就是将实参中按照位置传参,多余的都是给args,切都是以元组的方式实现)
**kwargs:(表示的是按照关键字传参,保存的是字典的形式)
print(type(l),l)
2.请写出一段Python代码实现删除一个list里面的重复元素,例如l=[1,2,3,3,4,4,5]
 
l=[1,2,3,3,4,4,5] d ={} 
 d=d.fromkeys(l)
print(list(d))
3.Python里面如何生成随机数?
import random
l = random.randint(198,200)

print(l)
l = random.randrange(100)
print(l)
4.简述列表,字符串,元组,字典之间异同。
有序性:前三者都是有序的,由于此性质决定了,可以用成员运算符 
in or not in,可以索引[],可以切片,拼接,len(),.count(),.index()
max(),min()
可变性:列表,字典都是可变的,都可以增删改查
#静态方法举例
class People(object):
        Name = '类变量名'
        def __init__(self,name):
                self.name = name
        @staticmethod#静态方法,是用来处理这个类的逻辑关系,不能访问类属性和实例属性
        def run(self):
                print('%s is a staticmthod '%self.name)
        @staticmethod
        def talk():
                print('who is talking')
p1 = People('ll')
#print(p1.run())#不能输出

print(p1.run(p1))#解决方法:调用时主动传递实例本身给run方法

p1.talk() # 解决方法:在run方法中去掉self参数,但这也意味着,在中不能通过self.
        #去调用实例中的其他变量了
                
#类方法举例->只能访问类变量不能访问实例变量
class Cat(object):
        name = '我是类变量'
        def __init__(self,name):
                self.name = name

        @classmethod
        def sleep(self):
                print('%s is a classname'%self.name)
c1 = Cat('大猫')
c1.sleep()
#属性方法举例--->成员函数:实例的方法,只能通过实例来调用,若需通过类名来调用,则应申明为类方法
#属性方法是通过@property把一个方法变成一个静态属性

class Cat(object):
        def __init__(self,name):
                self.name =name
        @property
        def talf(self):
                print('%s is a property method'%self.name)
c1 = Cat('damao')

#c1.talk()调用时出现错误,因为talk此时已经变成一个静态属性了,不是方法,不需要括号
c1.talf
#作用根据需要改变属性的状态,比如获取航班的当前状态,到达,延误还是飞走
原文地址:https://www.cnblogs.com/lhybky/p/10178653.html