Python-轻松月薪上万,打造最全面试题10道--全部附标准答案上篇

喜欢Python的小伙伴,希望本篇文章可以给你带来帮助!^.^

看到最后,给自己一个学习的基地!不管你是大佬还是小白,一起学习共同进步!感谢大家一直来的支持!

1、python的read() 、readline()、readlines()、xreadlines()

  • read()会读取整个文件,将读取到底的文件内容放到一个字符串变量,返回str类型。
  • readline()读取一行内容,放到一个字符串变量,返回str类型。
  • readlines() 读取文件所有内容,按行为单位放到一个列表中,返回list类型。
  • xreadlines()返回一个生成器,来循环操作文件的每一行。

Python-轻松月薪上万,打造最全面试题10道--全部附标准答案上篇

 

2、*arg和**kwarg作用

定义函数时,使用*arg和**kwarg
*arg和**kwarg 可以帮助我们处理上面这种情况,允许我们在调用函数的时候传入多个实参
def exmaple2(required_arg, *arg, **kwarg):
 if arg:
 print "arg: ", arg
 if kwarg:
 print "kwarg: ", kwarg
exmaple2("Hi", 1, 2, 3, keyword1 = "bar", keyword2 = "foo")
>> arg: (1, 2, 3)
>> kwarg: {'keyword2': 'foo', 'keyword1': 'bar'}
从上面的例子可以看到,当我传入了更多实参的时候
*arg会把多出来的位置参数转化为tuple
**kwarg会把关键字参数转化为dict

3、Python写9*9乘法表的两种简单方法

1 for i in range(1,10):
2 for j in range(1,i+1):
3 print("%s * %s = %s" %(j,i,i*j),end="")
4 print("")

Python-轻松月薪上万,打造最全面试题10道--全部附标准答案上篇

 

print "\n".join("\t".join(["%s*%s=%s" %(x,y,x*y) for y in range(1, x+1)]) for x in range(1, 10))

4、如何安装第三方模块?以及用过哪些第三方模块?

pip install 模块名

一、Python爬虫

1. 请求

requests(第三方模块)

2. 解析:

bs4(即beautifulsoup,第三方模块)

3. 储存:

pymongo(第三方模块):

把数据写入MongoDB

MySQL-python(第三方模块):

把数据写入MySQL里面。

协程:gevent(第三方模块)

二、Python数据分析&科学计算

numpy(第三方模块,C拓展):

Copy了MATLAB的数据结构。很多数据分析和科学计算库的底层模块。提供了良好的数组数据结构和C拓展接口。

pandas(第三方模块,C拓展):

Copy了R的data frame的数据结构。

Python-轻松月薪上万,打造最全面试题10道--全部附标准答案上篇

 

5、列举 Python2和Python3的区别

  • print
  • input
1 问题:如何获取编码方式的信息?
 2 获取目标bytes的编码方式
 3 这一情况可以通过chardet模块的detect()函数来获取信息,chardet是第三方库,可以通过pip来安装
 4 
 5 b是待检测的bytes变量
 6 
 7 import chardet
 8 print(chardet.detect(b))
 9 ######output####
10 {'confidence': 1.0, 'encoding': 'ascii'}
11 1
12 2
13 3
14 4
15 5
16 confidence是指匹配程度,encoding是指可能的编码方式
17 
18 获取当前环境的编码方式 
19 这一情况可以使用sys模块下的getdefaultencoding()函数来获取信息
20 
21 import sys
22 print(sys.getdefaultencoding())
23 
24 ######## output#####
25 utf-8
  • 问题在控制台上看到的到底是什么
 1 写上面的东西的时候产生了一个疑问,现在已经知道Python内部存储str的方式是使用unicode字符集,但是我们在屏幕上看到的并不是unicode字符集
 3 s = "你好"
 4 print(s)
 6 #########output#############
 7 你好
13 s的 unicode 是 \\u4f60\\u597d
14 1
15 那么,这中间应该是进行了某种转换 
16 实际上,在执行print(str)的时候,python内部执行了encoding操作,控制台拿到的其实是一个bytes变量 
17 之后,控制台又根据环境内部的编码方式,将所得到的bytes内容进行decoding的操作,就显示了原先str的内容
  • 打开文件不再支持 file 方法,只能用 open
  • range不再返回列表,而是一个可迭代的range对象
  • 除法 / 不再是整除,而是得到浮点数,整除需要用双斜杠 //
  • urllib和urllib2合并成了urllib,常用的urllib2.urlopen()变成了urllib.request.urlopen()
  • 字符串及编码相关有大变动,简单来说就是原来的str变成了新的bytes,原来的unicode变成了新的str。

最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并点击:“资料”即可领取。