ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

180道Python面试题解析(1~5)

2019-08-27 15:55:25  阅读:223  来源: 互联网

标签:面试题 变量 Python 数据类型 180 列表 对象 地址


偶然在知乎上看到了Python学到什么程度可以面试这个问题,好奇点进去后看到有答主给了180道Python面试题,正好可以边学习边检测一下自己的学习成果
知乎链接:Python学到什么程度可以面试工作?


1.列出 5 个常用 Python 标准库?
这道题就像再问你擅长哪些库一样
如果经常做爬虫,肯定离不开urllib ,requests 这样常用的网络库;
如果是刚入门的话,可能会是os,sys,re,math,datetime这样的基础库;
所以这道题的答案因人而异吧,不过既然说出是自己常用到的库那就要能说出这些库的特性和用法。


2.Python 内建数据类型有哪些?
Python3 有很多内置的数据类型,以下是比较重要的一些:

  • Number(数字)
    Python3 支持 int、float、bool、complex(复数)
  • String(字符串)
    字符串或串(String)是由数字、字母、下划线组成的一串字符;
    Python的字串列表有2种取值顺序:
    1. 从左到右索引默认0开始的,最大范围是字符串长度少1
    2. 从右到左索引默认-1开始的,最大范围是字符串开头
  • List(列表)
    List(列表) 是 Python 中使用最频繁的数据类型,它可以完成大多数集合类的数据结构实现,支持字符,数字,字符串甚至可以包含列表(所谓嵌套)。
  • Tuple(元组)
    元组是另一个数据类型,类似于List(列表),用"()"标识,内部元素用逗号隔开,但是元组不能二次赋值,相当于只读列表。
  • Dictionary(字典)
    字典用"{ }"标识。字典由索引(key)和它对应的值value组成,字典当中的元素是通过键来存取的,是无序的对象集合。
  • Set(集合)
    集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员,基本功能是进行成员关系测试和删除重复元素,可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典的。
  • Bool(布尔类型)
    Python 中布尔值使用常量 True 和 False 来表示。
  • Bytes(字节)
    Python 3 新增了 bytes 类型,由多个字节组成,以字节为单位进行操作。bytes 对象只负责以字节(二进制格式)序列来记录数据,至于这些数据到底表示什么内容,完全由程序决定。

3.简述 with 方法打开处理文件帮我我们做了什么?
打开文件在进行读写的时候可能会出现一些异常状况,如果按照常规的f.open写法,我们需要try,except,finally,做异常判断,并且文件最终不管遇到什么情况,都要执行finally f.close()关闭文件,with方法帮我们实现了finally中f.close。


4.列出 Python 中可变数据类型和不可变数据类型,为什么?

  • 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
  • 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
  • 不可变数据类型的不可变指的是变量引用的地址处的值是不可变的,例如int类型,改变该类型变量的值,实际是改变了该变量引用的地址值,即改变了该变量引用的队像,并没有改变之前引用的队像的值。不可变数据类型的优点是,不管内存中有多少个引用,相同的对象只占用一块内存;缺点是当对变量进行运算从而改变变量的值时,由于是不可变数据类型,所以需要创建新对象,不断的改变就会不断的创建新对象。但是不再使用的变量会被垃圾回收器回收。
  • 可变数据类型,具有同样值的对象是不同的对象,即在内存中保存了多个同样值的对象,地址值不同。可变数据类型的对象,当值发生改变时,并不会创建新的对象,只是改变了原地址的值,扩充了原地址的内容,但是并不会改变原地址的地址值。但是对于可变数据类型赋值操作是会改变该变量的地址值的。

5.Python 获取当前日期?

import time
print (time.strftime("%d/%m/%Y"))

示例输出:
11/10/2013

标签:面试题,变量,Python,数据类型,180,列表,对象,地址
来源: https://blog.csdn.net/weixin_40958742/article/details/100100647

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有