前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >去面试Python工程师,这几个基础问题一定要能回答,Python面试题No4

去面试Python工程师,这几个基础问题一定要能回答,Python面试题No4

作者头像
梦想橡皮擦
发布2019-05-15 13:49:42
5960
发布2019-05-15 13:49:42
举报

今天的面试题以基础为主,去面试Python工程师,这几个基础问题不能答错

第1题:列表和元组有什么不同?

列表和元组是Python中最常用的两种数据结构,字典是第三种。

相同点:

  • 都是序列
  • 都可以存储任何数据类型
  • 可以通过索引访问
语法差异

使用方括号[]创建列表,而使用括号()创建元组。

是否可变

列表是可变的,而元组是不可变的,这标志着两者之间的关键差异。

重用与拷贝

元组无法复制。 因为元组是不可变的,所以运行tuple(tuple_name)将返回自己

内存开销

Python将低开销的较大的块分配给元组,因为它们是不可变的。 列表则分配小内存块。 与列表相比,元组的内存更小。 ' 当你拥有大量元素时,元组比列表快。 列表的长度是可变的。

第2题:什么是负索引?

Python中的序列索引可以是正也可以是负

如果是正索引,0是序列中的第一个索引,1是第二个索引。 如果是负索引,-1是最后一个索引,-2是倒数第二个索引。

代码语言:javascript
复制
    lst=[11,22,33,44,55]

全取列表

代码语言:javascript
复制
>>> lst[:]
[11, 22, 33, 44, 55]

取不到最后一个元素

代码语言:javascript
复制
>>> lst[:-1] # 注意这里不能输出55,因为切片操作都是左闭右开的
[11, 22, 33, 44]

列表倒序

代码语言:javascript
复制
>>> lst[::-1]
[55, 44, 33, 22, 11]

取最后一个

代码语言:javascript
复制
>>> lst[-1]
55

取第一个

代码语言:javascript
复制
>>> lst[0]
11

第3题: 如何随机打乱列表中元素,要求不引用额外的内存空间?

用 random 包中的 shuffle() 函数来实现

代码语言:javascript
复制
import random
random.shuffle(你的列表)
# 举个例子:
L1 = [1, 3, 5, 7]
random.shuffle(L1)

第4题:解释 Python 中的 join() 和 split() 函数?

join() 函数可以将指定的字符添加到字符串中

代码语言:javascript
复制
‘1,2,3,4,5’
代码语言:javascript
复制
a=','.join('123456')
print(a)
print(type(a))

#1,2,3,4,5,6

#<class 'str'>

split() 函数可以用指定的字符分割字符串

代码语言:javascript
复制
[‘1’, ‘2’, ‘3’, ‘4’, ‘5’]
代码语言:javascript
复制
a='1,2,3,4,5,6'.split(',')
print(a)
print(type(a))


#['1', '2', '3', '4', '5', '6']
#<class 'list'>

第5题:如何删除字符串中的前置空格?

  1. strip():把头和尾的空格去掉
  2. lstrip():把左边的空格去掉
  3. rstrip():把右边的空格去掉
  4. replace('c1','c2'):把字符串里的c1替换成c2。故可以用replace(' ','')来去掉字符串里的所有空格
  5. split():通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串
  6. re.split(r'\s+', 'a b c') # 使用正则表达式

第6题:Python 中的 pass 语句有什么作用?

在编写代码时只写框架思路,具体实现还未编写就可以用 pass 进行占位,使程序不报错,不会进行任何操作。

比如:

代码语言:javascript
复制
while False:
    pass

pass通常用来创建一个最简单的类:

代码语言:javascript
复制
class MyEmptyClass:
    pass

pass在软件设计阶段也经常用来作为TODO,提醒实现相应的实现,比如:

代码语言:javascript
复制
def readtxt(*args):
    pass # to do list

第7题:解释 Python 中的成员运算符?

成员运算符

in 是判断是否包含

通过成员运算符‘in’ 和 ‘not in’,确认一个值是否是另一个值的成员。

代码语言:javascript
复制
print('me' in 'disappointment')#True
print('us' in 'disappointment')#False

身份运算符

is 是判断内存地址

  • is 是判断两个标识符是不是引用自一个对象
  • is not 是判断两个标识符是不是引用自不同对象

tops: in 的 not 在前,is 的 not 在后

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-05-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第1题:列表和元组有什么不同?
    • 语法差异
      • 是否可变
        • 重用与拷贝
          • 内存开销
          • 第2题:什么是负索引?
          • 第3题: 如何随机打乱列表中元素,要求不引用额外的内存空间?
          • 第4题:解释 Python 中的 join() 和 split() 函数?
          • 第5题:如何删除字符串中的前置空格?
          • 第6题:Python 中的 pass 语句有什么作用?
          • 第7题:解释 Python 中的成员运算符?
            • 成员运算符
              • 身份运算符
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档