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

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

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

相同点:

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

语法差异

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

是否可变

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

重用与拷贝

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

内存开销

Python将低开销的较大的块分配给元组,因为它们是不可变的。

列表则分配小内存块。

与列表相比,元组的内存更小。 '

当你拥有大量元素时,元组比列表快。

列表的长度是可变的。

第2题:什么是负索引?

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

如果是正索引,0是序列中的第一个索引,1是第二个索引。

如果是负索引,-1是最后一个索引,-2是倒数第二个索引。

	lst=[11,22,33,44,55]

全取列表

>>> lst[:]
[11, 22, 33, 44, 55]

取不到最后一个元素

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

列表倒序

>>> lst[::-1]
[55, 44, 33, 22, 11]

取最后一个

>>> lst[-1]
55

取第一个

>>> lst[0]
11

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

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

import random
random.shuffle(你的列表)
# 举个例子:
L1 = [1, 3, 5, 7]
random.shuffle(L1)

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

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

‘1,2,3,4,5’
a=','.join('123456')
print(a)
print(type(a)) #1,2,3,4,5,6 #<class 'str'>

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

[‘1’, ‘2’, ‘3’, ‘4’, ‘5’]
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 进行占位,使程序不报错,不会进行任何操作。

比如:

while False:
pass

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

class MyEmptyClass:
pass

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

def readtxt(*args):
pass # to do list

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

成员运算符

in 是判断是否包含

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

print('me' in 'disappointment')#True
print('us' in 'disappointment')#False

身份运算符

is 是判断内存地址

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

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

微信搜索:非本科程序员,关注吧

去面试Python工程师,这几个基础问题一定要能回答,Python面试题No4的更多相关文章

  1. Python学习路线【对标大厂Python工程师的招聘要求,并推荐优质免费资源】打卡学习不迷茫

    您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 本文要点:从Python爬虫工程师的招聘要求出发制定学习路线,同时还推荐免费优质的学习资源. 打卡学习不迷茫. 干货满满,建议收藏,需要用到时常看 ...

  2. 刚毕业去面试Python工程师,这几道题太难了,Python面试题No11

    写在前面 本想停一段时间这个系列,但是好多朋友给我发信息说让我继续整理下去,so,继续吧~ 第1题: docstring是什么? docstring是一种文档字符串,用于解释构造的作用.我们在函数.类 ...

  3. 各位大佬Python的第一部分道基础题已经整理好了,希望大家面试的时候能用的上。

    Python的第一部分道基础题,希望大家面试的时候能用的上. 1.为什么学习Python? Python是目前市面上,我个人认为是最简洁.最优雅.最有前途.最全能的编程语言,没有之一. 2.通过什么途 ...

  4. 《百面机器学习算法工程师带你去面试》高清PDF及epub+《美团机器学习实践》PDF及思维导图

    http://blog.sina.com.cn/s/blog_ecd882db0102yuek.html <百面机器学习算法工程师带你去面试>高清PDF及epub+<美团机器学习实践 ...

  5. 昨天去面试,这5个Python面试题都被考到了,Python面试题No6

    第1题:字符串的拼接–如何高效的拼接两个字符串? 字符串拼接的几种方法 加号 逗号 直接连接 格式化 join 多行字符串拼接() 加号 print('Python' + 'Plus') 逗号 pri ...

  6. 如何面试前端工程师:GitHub 很重要

    编者注:下面这篇文章从面试官的角度介绍到面试时可能会问到的一些问题. 我在Twitter和Stripe的一部分工作内容是面试前端工程师.其实关于面试你可能很有自己的一套,这里我想跟你们分享一下我常用的 ...

  7. 李洪强经典面试案例33-如何面试 iOS 工程师

    如何面试 iOS 工程师   推荐序 私下和很多朋友交流过这个话题,大部分求职者认为,我能做基本的 iOS 开发工作,就达到公司的要求了,殊不知公司招聘员工,更希望的是这个人能够在关键时候能够发挥一般 ...

  8. 2020 倒计时 1 天,Python 工程师找工作更难了?

    Python 是最神奇的编程语言. 无意引战,我说的是"神奇",不是"最好",并不想去"撼动" PHP 的地位.               ...

  9. 慕课网金职位 Python工程师 百度网盘下载

    百度网盘链接:https://pan.baidu.com/s/1xshLRO3ru0LAsQQ0pE67Qg 提取码:bh9f 如果失效加我微信:610060008[视频不加密,资料代码齐全,超清一手 ...

随机推荐

  1. CodeForces 923C Perfect Security

    C. Perfect Security time limit per test3.5 seconds memory limit per test512 megabytes inputstandard ...

  2. redis持久化和分布式实现

    Redis是一种面向“key-value”类型数据的分布式NoSQL数据库系统,具有高性能.持久存储.适应高并发应用场景等优势. 本文使用的redis是3.2.1版本.下载后,文件如下 将文件解压到指 ...

  3. Snort里如何将读取的包记录存到指定的目录下(图文详解)

    不多说,直接上干货! 比如,在/root/log目录下. [root@datatest ~]# snort -dve -l /root/log 需要注意: 1) /log目录需要你自己建立,并修改权限 ...

  4. [BZOJ1025][SCOI2009]游戏 DP+置换群

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1025 题目中的排数就是多少次回到原来的序列.很显然对于题目所描述的任意一种对应法则,其中一 ...

  5. php中 mysql 插入特殊字符(手机端的emoji表情)出现异常

    今天在用mysql存储从微信服务器拉来的数据,出现插入数据异常,报 Incorrect string value: '\xF0\x9F\x98\x97\xF0\x9F 的错误. 最终在网上查了一下,有 ...

  6. C# 移动开发 MasterDetailPage 侧滑

    先上结果图: 虽然是跨平台的安卓和ios都可以运行,由于目前只配置了安卓的,ios的先不理. 我们先新建一个项目,跨平台应用: 可移植类库: 可移植项目右键添加新建项 选 Forms MasterDe ...

  7. mysql 插入多条记录,重复值不插入

    只去除主键与唯一索引的字段,字段为null时 是可以重复插入的domo: insert ignore into table_name(email,phone,user_id) values('test ...

  8. JPA调用存储过程

    @Transactional public BasAccount findByAccount(String account) { System.out.println(account); Query ...

  9. CentOS 6.4 php-fpm 添加service 添加平滑启动/重启

    nginx通过FastCGI运行PHP比Apache包含PHP环境有明显的优势,最近有消息称,PHP5.4将很有可能把PHP-FPM补丁包含在内核里,nginx服务器平台上运行PHP将更加轻松,下面我 ...

  10. win10下anaconda3环境配置

    WINDOW系统设置环境变量:我的电脑右键-属性-高级系统设置-高级-环境变量中在path中加入你系统安装anaconda的目录下的scripts中: C:\Users\***\anaconda3\S ...