1.列出python中可变数据类型和不可变数据类型,并简述原理

不可变数据类型:

数字类型、字符串类型string 和 元组tuple

不允许变量的值发生变化,如果改变了变量的值,相当于是新建了一个对象,而对于相同的值的对象,在内存中则只有一个对象(一个地址),如下图用id()方法可以打印对象的id.

可变数据类型:

列表list和字典dict

允许变量的值发生变化,即如果对变量进行append、+=等这种操作后,只是改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化。

相同的值在内存中可能会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象。

  2.python2和python3的range(100)的区别

range()函数的含义

range函数是一个用来创建算数级数序列的通用函数,返回一个[start, start + step, start + 2 * step, …]结构的整数序列
range()函数的特性

如果step参数缺省,默认1;如果start参数缺省,默认0。
如果step是正整数,则最后一个元素(start + i * step)小于stop。
如果step是负整数,则最后一个元素(start + i * step)大于stop。
step参数必须是非零整数,否则抛出VauleError异常。
注意:range函数返回一个左闭右开([left,right))的序列数

python2中的range返回一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表

>>> list=range(10)
>>> print list
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

python3中的range返回的是一个迭代器

>>> range(10)
range(0, 10)
>>> type(range(10))
<class 'range'>
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> type(list(range(10)))
<class 'list'>

for i in range(1,10)在python2和python3中都可以使用,但是要生成1-10的列表,就需要用list(range(1,10))

  3.在Python中读取大文件

利用生成器generator

def read_in_block(file_path):BLOCK_SIZE = 1024with open(file_path, "r") as f:while True:block = f.read(BLOCK_SIZE)  # 每次读取固定长度到内存缓冲区if block:yield blockelse:return  # 如果读取到文件末尾,则退出def test3():file_path = "/tmp/test.log"for block in read_in_block(file_path):print block

  • 迭代器进行迭代遍历:for line in file
def test4():with open("/tmp/test.log") as f:for line in f:print line 

for line in f 这种用法是把文件对象f当作迭代对象, 系统将自动处理IO缓冲和内存管理, 这种方法是更加pythonic的方法。 比较简洁。

原文:https://blog.csdn.net/hihell/article/details/89358275

  4. Python语言中的模块和包是什么?

python模块(Module)

在 Python 中,模块是搭建程序的一种方式。
每一个 Python 代码文件都是一个模块,并可以引用其他的模块,比如对象和属性。
表现形式为:写的代码保存为文件。这个文件就是一个模块。abc.py 其中文件名abc为模块名字。

有四种代码类型的模块:

使用Python写的程序( .py文件)
C或C++扩展(已编译为共享库或DLL文件)
包(包含多个模块)
内建模块(使用C编写并已链接到Python解释器内)
python包(Package)

包(Package)就是包含模块文件的目录,目录名称就是包名称,目录中可以包含目录,子目录也是包,但包名称应该包含上一级目录的名称。

Python引入了按目录来组织模块是为了避免模块名冲突,不同包中的模块名可以相同。

注意,每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。
__init__.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块,而它的模块名就是包名。

继续深入了解,可以查阅

https://www.cnblogs.com/GhostCatcg/p/8151927.html

转载于:https://www.cnblogs.com/longpy/p/11063513.html

python面试题No5相关推荐

  1. python工程师面试宝典_2019年,Python工程师必考的6个面试题,Python面试题No5

    第1题:Python里面如何实现tuple和list的转换? 函数tuple(seq)可以把所有可迭代的(iterable)序列转换成一个tuple, 元素不变,排序也不变 list转为tuple: ...

  2. python工程师笔试题_2019年,Python工程师必考的6个面试题,Python面试题No5

    函数 tuple(seq) 可以把所有 可迭代的(iterable)序列 转换成一个 tuple , 元素不变,排序也不变 list转为tuple: temp_list = [1,2,3,4,5] 复 ...

  3. 面试前赶紧看了5道Python Web面试题,Python面试题No17

    目录 本面试题题库,由公号:非本科程序员 整理发布 第1题: Flask中的请求上下文和应用上下文是什么? 第2题:django中间件的使用? 第3题: django开发中数据做过什么优化? 第4题: ...

  4. cpython python 区别面试_python基础教程之千万不要错过这几道Python面试题

    第1题: python下多线程的限制以及多进程中传递参数的方式? python多线程有个全局解释器锁(global interpreter lock),简称GIL,这个GIL并不是python的特性, ...

  5. 震惊!几道Python 理论面试题,Python面试题No18

    本面试题题库,由公号:非本科程序员 整理发布 第1题: 简述解释型和编译型编程语言? 解释型语言编写的程序不需要编译,在执行的时候,专门有一个解释器能够将VB语言翻译成机器语言,每个语句都是执行的时候 ...

  6. 点开瞅瞅,再来几道Python面试题吧,Python面试题No20

    文章目录 本面试题题库,由公号:非本科程序员 整理发布 第1题:如何理解 Django 被称为 MTV 模式? 第2题:解释下什么是 ORM 以及它的优缺点是什么? 第3题:Django 系统中如何配 ...

  7. 这几道Python面试题,稳准狠,Python面试题No15

    文章目录 必须放一个表情包,太魔性了! 第1题: 修改以下Python代码,使得下面的代码调用类A的show方法? 第2题:修改以下Python代码,使得代码能够运行 第3题: 下面这段代码的输出是什 ...

  8. 21年最新Python面试题及答案汇总详解(上)

    错过三月找工作的机会,还要错过四月的好时期吗?Python面试你做准备了吗?下面小编整理了一套2021年最新Python常见面试题目,及Python面试题目答案汇总.希望能够帮助到大家. 21年最新P ...

  9. 300道Python面试题,备战春招!

    作者 | kenwoodjw 责编 | Jane 出品 |  Python大本营(ID:pythonnews) 程序员转行学什么语言? https://edu.csdn.net/topic/ai30? ...

  10. 一道Python面试题,据说大部分人都中招了,纷纷开始怀疑自己

    无意间,看到这么一道Py无意间,看到这么一道Python面试题:以下代码将输出什么? def testFun(): temp = [lambda x : i*x for i in range(4)] ...

最新文章

  1. Prometheus监控业务指标
  2. 03-cmake语法-变量,字符串
  3. SOCKET编程中,select()函数的作用
  4. 平均交付时长减少五天!腾讯TAPD助力企业高效交付!
  5. 方立勋_30天掌握JavaWeb_XML
  6. UI5 setModel 的核心逻辑
  7. html 鼠标移动3d视图,HTML5 鼠标悬停3D平面摇晃动效
  8. 每个程序员都应该知道的基础数论
  9. 再议libcurl编程
  10. 剑指offer面试题[12]-打印1到最大的n位数
  11. Java 静态代理、Java动态代理、CGLIB动态代理
  12. 前端与游戏前端unityUI比较
  13. eclipse 创建 javaWeb 项目 如何 配置 tomcat
  14. 实战-全局唯一邀请码功能实现
  15. 我的世界检测不到java_《我的世界》检测不到java怎么办?
  16. 华三ap设置无线服务器,H3C无线控制器V5版本配置AP上线的方法
  17. 写给喜欢单片机的初学者
  18. 程鑫峰:1.19伦敦金陷多空交织,长江金业后市行情解析
  19. 编辑为什么建议转投_sci编辑建议转投应该接受吗
  20. MUI增加BeeCloud支付集成示例

热门文章

  1. 甘超波:NLP抽离与结合
  2. APP离线后,通过SystemClock.elapsedRealtime()校正时间
  3. dell服务器主板型号怎么看,我不懂硬件,帮我看看DELL600M的主板是什么型号
  4. 制作集成SATA、RAID和AHCI驱动的Windows XP sp3 安装光盘
  5. C# 自定义分页控件
  6. python读取xlsm文件_如何从* .xlsm中提取工作表并将其保存为Python中的* .csv?
  7. 设置透明主题引起动画失效以及打开其他应用闪现桌面图标的问题
  8. 原生html单页应用,web单页应用
  9. 【git】cherry-pick详解
  10. php网页的制作,网页制作步骤是什么