python

1、python是强类型还是弱类型的语言?

强类型

【评析】这种问题其实面试出来很没意思,因为太过理论,而且业界对于这个东西的定义没有一个统一的说法。所以这个题问出来挺无语的。记住,目前阳光面的说法:python是动态强类型语言。其中动态静态是针对变量的绑定方式,静态是指在编译的时候绑定变量,而动态是指在运行的时候可以绑定变量。

强弱类型是指变量的类型一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。而弱类型语言,一个数字类型的变量即可以是字符串也可以是数字类型,可以容忍隐式类型转换。 python是一个比较严谨的语言,所以它是强类型语言,而不是弱类型语言。

弱类型语言的话,“1”+2=12,而强类型的话,“1”+2=“大哥,你输入的语法有毛病,你知道不?”

补充一下,perl和php是弱类型动态语言,c和c++是弱类型静态语言。

2、python的动态性体现在哪?

动态性体现在:python在运行的时候可以改变原来的函数定义,也可以引进新的代码和对象。

【评析】首先C和C++不是动态语言。然后,python是可以动态的给实例绑定属性,比如

class undead:    #先class一个“不死族”

def __init_(self,name=None,attitude=None):

#设定一个类,这个类就是不死族的类.init是初始属性、默认属性

name=name               #这里设定名字是名字,态度是态度

attitude=attitude

P=undead("食尸鬼","hostile")      #将类实例化,食尸鬼是不死族的一员,他的态度是敌对的

但是这个时候已知设定了name和attitude这两个属性,但是我们可以后补新的属性。

P.attack="爪击"      #设定食尸鬼的攻击方式

然后我们就可以访问attack这个属性了,虽然它并没有在最原始的时候被设定。

P.attack回车一下就可以看到结果。这就是可以动态的补充变量的属性,即一次没有整明白,可以后续补齐。

在实际生产的时候注意一下,在上面的例子里P.name回车的结果和print (P.name)的结果是有那么一点不同的,可以自己动手试试。

3、python的namespace:四种;len()等函数的命名空间

【评析】命名空间就是名字和对象的映射。也就是可以把一个namespace理解为一个字典,实际上很多当前的Python实现namespace就是用的字典。那么哪些可以是一个namespace呢,比如Python的built-in names(包括内置函数,内置常量,内置类型);一个模块的global names(这个模块定义的函数,类,变量);一个函数的所有local names;还有一个类对象的所有属性(数据成员,成员函数)都组成一个命名空间。

len()等函数的命名空间这玩意自己查一下就好。

4、range和xrange的区别

【评析】我找的这个面试题挺新的,2015年10月份左右的试题,但是不得不说搞python就是这一点不好:版本之间不兼容。3.5的版本里xrange已经被枪毙了,range的功能就是xrange。所以在面试的时候大家要注意python2.7和3.5的差别,一旦面试官问你没听过的语句或者是命令,第一反应别说不知道,而是要说“这丫是2.7的吧”。

继续说,在python 2.7版本里:xrange能用就多用,这玩意比range更好,因为在生成一个大数字序列的时候,xrange的性能更优秀。虽然他俩在for in语句里的输出效果是一样的,但是主要区别是xrange会返回一个整体,这个比较类似于人类的思维,而range返回的是list。比如:

a=range(10)

type a 回车的结果是“list”,print a回车的结果是一个list,(1,2,3。。。9,10)。

a=xrange(10)

type (a)回车的结果是"xrange",print(a)回车的结果是一个xrange(10)

而且xrange的效率比range更快,用timeit一下效果更加明显,本机是3.5,range就是xrange,使用timeit.timeit('for i in range(100000000):pass',number=1),看一下查一亿个数用xrange消耗时间仅仅是5秒左右。如果在2.7的环境下,用真实的range试一下上面的命令,估计要20多分钟。

5、于是问怎么实现迭代器,然后又问了生成器,yield语句

迭代器是一种访问集合元素的方式,从第一个元素开始访问直至到最后一个元素访问完毕,迭代器的访问只能前进不能后退。迭代器主要用于数学里面不断地“后项加前项”的场合里。

定义__init__()对象就可以使用迭代器访问。

带有yield的函数在python里就被叫做生成器,或者(n for n in aaa if n >0)这种类型的列表生成式也是生成器。它准许停止函数并且立即返回结果。

【评析】这里又是一个python 2.7与python 3.5的不同,py2.7里是可以调用.next函数的,但是在py3.5里调用的是next()函数,举个例子,在py2.7里:

AAA="秦时明月汉时关"

AAA.next  回车的话,会把上面的诗句每个字都显示一遍

也可以next(AAA),效果同样。但是在python 3.5里只能使用next(AAA),用.next的话,会报错。

而且在实际生产中,宁可有大量可迭代的简单参数,也不要有一个超大量的最后返回一个值的函数。

6、将list的中的一万条字符串合成一条字符串的方法

可以使用string里的join函数,举个例子

AAA=["zabbix","ngnix","python","Apache","nocchi"]

BBB="".join(AAA)

print (BBB)

【评析】刚才的例子显示出来的结果是无缝连接AAA里的元素。如果BBB="¥¥¥".join(AAA),这时候再print一下,效果就是"zabbix¥¥¥ngnix¥¥¥python¥¥¥Apache¥¥¥nocchi"

7、python的三目运算符有吗? 怎么用一行代码实现三目运算?

三目运算符是c的东西,python里是没有的,但是可以用判断语句来模拟达到这个效果。

【评析】and前后如果有一个值是假,那么返回第一个假值,如果都是真,那么返回最后一个真值。or只要接一个真值,就返回真值,否则返回最后一个假值。

result = XX if True/False else result = YY   当True的时候是XX,如果是False的时候是YY。

-------------------------------------------------------------------------------------------

linux

1、top和ps在进程占有资源率的统计方式有什么不同?

ps是显示在执行ps这个命令时刻所有进程的情况,而top是动态的监控进程的情况(windows的任务管理器)。

top显示系统总的统计信息,比如时间,CPU情况,内存状态和分区信息等等。ps没有这么个功能。

【评析】ps -ef这个是一个比较常见的搭配方式,-e是“所有进程”,-f是文件之间的关系;ps -aux也是很常用的,意思是“显示包含其他使用者的进程”。ps命令也可以搭配 -more和管道符使用,也可以搭配输出重定向。

top -n 2指的是更新两次之后就停;top -d 3指的是更新周期是三秒;top -p 574 指的是显示pid为574的进程。top状态下按b是显示高亮。

2、谈谈/proc目录

Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。

【评析】更多信息在http://blog.csdn.net/zdwzzu2006/article/details/7747977

3、/proc存在哪里?

上面已经说了,存在内存里。

4、谈谈页表,内存管理,TLB

【评析】这道题蛮难的,几句话很难说明白,估计面试官主要想看看你的语言组织能力和沟通能力。答案的话,可以看一下:http://blog.chinaunix.net/uid-26009500-id-3089718.html

5、inode存储了哪些东西?目录名,文件名存在哪里?

inode存储了文件大小、user id、group id、文件的读写执行权限、软连接硬链接被引用的次数、时间戳、block的位置。唯独没有文件名!!!

目录名、文件名存在“目录项”里。

【评析】ls -i这个是显示inode号码的查询方法,我个人比较喜欢用ll -hi这个命令。

stat这个可以查询inode信息,使用方法stat AAA 即可。

这道题是可以扩展的,“如果出现了系统使用df-h发现/data分区有空余内存,但是却无法建立新文件,这是什么原因,如何解决?”

答:这个基本就是inode号码已经用完了,所以不能建立新文件。删除掉/ data/cache/目录中的部分文件来释放一部分/data分区的inode,或者把其他分区的inode引进到/data 分区里,操作如下:

ln -s /AAA/cache/ /data/cache         #这样就达到了使用AAA分区的inode为data分区所用的效果

更多信息请看:http://c.biancheng.net/cpp/html/2780.html

本文转自 苏幕遮618 51CTO博客,原文链接:http://blog.51cto.com/chenx1242/1741994

Linux运维工程师面试题第二套相关推荐

  1. Linux运维工程师笔试题系列6(30题)

    Linux运维工程师笔试题系列6(30题) 如果您对问题有疑问,或者认为答案不准确的,欢迎留言交流. 问题如下: 1. cat -n file1file2 命令的意思是? A 只会把文件file1的内 ...

  2. Linux运维工程师面试题(1)

    文章目录 Linux运维工程师面试题(1) 1 别名.内部命令.外部命令的执行顺序 2 linux 系统启动流程 3 破解用户密码的方法 4 忘记 grub 密码怎么解决 5 硬盘空间满了怎么处理,怎 ...

  3. linux运维工程师面试题收集

    面试必考 mysql5和mysql6 有什么区别 mysql-server-5.5:默认引擎改为Innodb,提高了性能和扩展性,提高实用性(中继日志自动恢复) mysql-server-5.6:In ...

  4. Linux运维工程师面试题第三套

    1.linux如何挂在windows下的共享目录? mount -t cifs -o username=windows登陆账号,password="windows账号对应的密码"/ ...

  5. Linux运维工程师面试题

    1.什么是运维? 运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常,在他运转的过程中,对他进行维护,他集合了网络.系统.数据库.开发.安全.监控于一身的技术,运维又包括很 ...

  6. Linux运维工程师面试题整理

    1.Nginx反向代理,负载均衡,动静分离,工作原理及优化 nginx配置反向代理. vim Nginx.conf Server模块中配置 Listen 80 Server_name ip; 在ser ...

  7. Linux运维工程师面试题及答案

    填空题 在Linux系统中,以 文件 方式访问设备 . Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统. Linux文件系统中每个文件用 i节点 来标识. 全部磁盘块由四个 ...

  8. linux运维工程师面试题和笔试题大全(*大学生必看)

    文章目录 选择题 简答题 选择题 cat -n file1file2 命令的意思是? A 只会把文件file1的内容输出到屏幕上. B 把文件file1和file2连在一起,然后输出到屏幕上. C 创 ...

  9. Linux运维工程师笔试题

    一.基本知识题(共10题,每题3分) 1.用什么命令查询指定IP地址的服务器端口? 1 yuminstall-y nmap 2.用什么命令定义某个程序执行的优先级别? 1 nice renice 3. ...

最新文章

  1. Delphi 完全时尚手册之 Visual Style 篇 (界面不错) 转自http://blog.csdn.net/iseekcode/article/details/4733229...
  2. linux mkfs.ext3 参数,linux命令mkfs.ext3用法[阮胜昌]
  3. jdk ServiceLoader怎么用
  4. php里注册管理员账号,WordPress中创建用户角色的相关PHP函数使用详解
  5. 记一次PowerShell免杀实战
  6. 机器学习笔试面试超详细总结(四)
  7. MATLAB求解非线性方程组
  8. 前端学习(1674):前端系列实战课程之手风琴效果
  9. python使用print语句时显示特殊字符
  10. 惠普服务器G8系列做raid,hp g8服务器设置raid5
  11. mysql报错:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
  12. iphone实用配置工具_除了让你买买买,苹果官网还隐藏着这些实用网页工具
  13. webSSH如何安装?如何使用?解决Web端远程连接终端~~运维篇
  14. 介绍几款低代码生成器,神器
  15. 单片机c语言中断嵌套,关于单片机中断嵌套总结
  16. “老三论”与“新三论”
  17. 网站备案包括哪些内容?ICP域名备案和网安备案操作细节
  18. 人民币大小写转换(php版),JavaScript实现人民币大小写转换
  19. 一般学校计算机密码是什么,学校电脑密码忘了怎么解?
  20. 读书笔记:《结构思考力》基于目标定主题

热门文章

  1. python语言if语句-Python if else语句详解
  2. python 朗读-Python 文本转语音
  3. python能写软件吗-python代码能做成软件吗
  4. python中的高阶函数
  5. 10元权限gm游戏_游戏P图超能打!揭秘10年老本儿500元升级计划
  6. tcpdump的使用
  7. Dialog的使用(二):AlertDialog.setItems
  8. rest-framework:权限组件
  9. 通过pipeline实现jenkins的ci/cd功能
  10. js中window.location.search的用法和作用