• 手机站
  • 收藏
聚培教育网合作机构 > 长春达内教育
长春达内教育
400-998-6158
长春达内是专业的IT培训中心,专为各位学员提供php,java等程序设计课程
长春达内教育

六个Python经典面试题分享

python学习网

更新时间:2021-10-29 浏览:91
核心提示:1. 目录(list)和元组(tuple)有什么不同?在我每一次面试Python大数据工程师的应聘中,这个问题都是会被问起。因此对这个问题的回

六个Python经典面试题分享

1. 目录(list)和元组(tuple)有什么不同?

在我每一次面试Python大数据工程师的应聘中,这个问题都是会被问起。因此对这个问题的回答,我能说成了然于胸。目录是可调的。建立后能够对其进行改动。元组是*须变的。元组一旦建立,就不可以对其开展变更。

目录表明的是次序。他们是井然有序编码序列,一般是同一种类的目标。例如按建立日期排列的全部登录名,如["Seth", "Ema", "Eli"]。

元组表明的是构造。能够用于储存不一样基本数据类型的原素。例如运行内存中的数据库查询纪录,如(2, "Ema", "2020–04–16")(#id, 名字,建立日期)。

2. 怎样开展字符串数组插值法?

在没有导进Template类的情形下,有3种形式开展字符串数组插值法。

name = 'Chris'

# 1. f stringsprint(f'Hello {name}')

# 2. % operatorprint('Hey %s %s' % (name, ame))

# 3. format

print(

"My name is {}".format((name)))

3. “is”和“==”有什么不同?

在我的Python职业发展的初期,我觉得他们是同样的,因此生产制造了一些bug。因此请大伙儿听好啦,“is”用于查验目标的标志(id),而“==”用于查验2个目标是不是相同。大家将进行一个事例表明。建立一些目录并将其分派给不一样的名称。一定要注意,下边的b偏向与a同样的目标。

a = [1,2,3]

b = a

c = [1,2,3]

下边来查验是不是相同,你能注意到数据显示他们全是相同的。

print(a == b)

print(a == c)

#=> True

#=> True

可是两者都具有同样的标志(id)吗?回答不是。

print(a is b)

print(a is c)

#=> True

#=> False

我们可以根据打印出她们的目标标志(id)来认证这一点。

print(id(a))

print(id(b))

print(id(c))

#=> 4369567560

#=> 4369567560

#=> 4369567624

你能见到:c和a和b具备各种各样的标志(id)。

4. 什么叫装饰器(decorator)?

这也是每一次应聘我一定会被问起的另一个难题。它实际上就非常值得写一篇文章。假如你能自身用它撰写一个事例,那麼表明你早已办好了提前准备。

装饰器容许根据将目前涵数传送给装饰器,进而向目前涵数加上一些附加的作用,该装饰器将实行目前涵数的措施和加入的附加作用。

大家将撰写一个装饰器,该装饰器会在启用另一个涵数时纪录日志。

撰写装饰器涵数logging。它接纳一个涵数func做为主要参数。它还界定了一个名叫log_function_called的涵数,它先实行打印出出一些“涵数func被启用”的信息内容(print(f'{func} called.')),随后函数调用func()。最终回到界定的涵数。

def logging(func):

def log_function_called():

print(f'{func} called.')

func()

return log_function_called

使我们撰写别的2个涵数,大家以后会将装饰器加上到在其中(但都还没)。

def my_name():

print('chris')def friends_name():

print('naruto')my_name()

friends_name()

#=> chris

#=> naruto

如今将装饰器加上到上边撰写的2个涵数当中。

@logging

def my_name():

print('chris')@logging

def friends_name():

print('naruto')my_name()

friends_name()

#=> x10fca5a60> called.

#=> chris

#=> x10fca5f28> called.

#=> naruto

如今,你了解了怎样只是根据在其上边加上@logging(装饰器),就会更好地将日志加上到大家撰写的一切涵数中。

5. 表述Range函数

Range函数能够用于建立一个整数金额目录,一般用在for循环中。它有3种操作方法。

Range函数能够接纳1到3个主要参数,主要参数务必是整数金额。

一定要注意:我已经将range的每一种使用方法包裝在一个递推式结构目录(list comprehension)中,便于我们可以见到转化成的值。

使用方法1 - range(stop):转化成从0到主要参数“stop”中间的整数金额。

[i for i in range(10)]

#=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

使用方法2 - range(start, stop) : 转化成从主要参数“start”到“stop”中间的整数金额

[i for i in range(2,10)]

#=> [2, 3, 4, 5, 6, 7, 8, 9]

使用方法3 - range(start, stop, step):以主要参数“step”为步幅,转化成从“start”到“stop”中间的整数金额。

[i for i in range(2,10,2)]

#=> [2, 4, 6, 8]

6. 界定一个名叫car的类,它有两个特性:“color”和“speed”。随后建立一个案例并回到“speed”。

class Car :

def ._init._(self, color, speed):

self.color = color

self.speed = speedcar = Car('red','100mph')

car.speed

#=> '100mph'

更多>同类资讯
更多>相关课程
顶部