Python 面试题

1、python 如何实现单例模式

python 有两种方式可以实现单例模式:

class Singleton(object):
    ''' A python style singleton '''
    def __new__(cls, *args, **kw):
        if not hasattr(cls, '_instance'):
            org = super(Singleton, cls)
            cls._instance = org.__new__(cls, *args, **kw)
        return cls._instance

if __name__ == '__main__':
    class SingleSpam(Singleton):
        def __init__(self, s):
            self.s = s
        def __str__(self):
            return self.s
    s1 = SingleSpam('spam')
    print id(s1), s1
    s2 = SingleSpam('spa')
    print id(s2), s2
    print id(s1), s1

2、**args 与*args的区别

#! /usr/bin/python
# -*- coding:utf-8 -*-
'''
Created on 2014-2-20

@author: Java
'''
'''
*args 表示一个list
**args 表示一个字典
在参数不确定的时候可以用到
'''
def test_param(*args):
    print args

def test_param_2(**args):
    print args

test_param('test1', 'test2')
test_param_2(p1='test1', p2='test2')
3、 什么是lambda函数?它有什么好处?

Python允许你定义一种单行的小函数。定义lambda函数的形式如下:labmda 参数:表达式lambda函数默认返回表达式的值。你也可以将其赋值给一个变量。lambda函数可以接受任意个参数,包括可选参数,但是表达式只有一个lambda 函数是一个可以接收任意多个参数(包括可选参数)并且返回单个表达式值的函数。 lambda 函数不能包含命令,它们所包含的表达式不能超过一个。不要试图向lambda 函数中塞入太多的东西;

4、RedHat Linux设置文本启动的方式(单选):

A. /etc/sysconfig/i18n
B. /etc/exports
C. /etc/syconfig/inittab
D. /etc/resolv.conf

5、思科路由器显示内存中的配置文件命令是(单选)___。

A、show version

B、show running-config :它可以显示交换机活动的配置文件,包括交换机名称、密码、接口配置情况以及辅助端口的配置等。

C、show flash

D、show start-config

6、IP address 123.200.8.68/28的网络ID是(单选):后面的28表示子网掩码位数

A、123.200.8.0

B、123.200.8.32

C、123.200.8.64

D、123.200.8.65

http://www.cnblogs.com/dring/p/3300472.html

A类IP地址:用7位(bit)来标识网络号,24位标识主机号,最前面一位为"0",即A类地址的第一段取值介于1~126之间。A类地址通常为大型网络而提供,全世界总共只有126个只可能的A类网络,每个A类网络最多可以连接16777214台主机。

B类IP地址:用14位来标识网络号,16位标识主机号,前面两位是"10"。B类地址的第一段取值介于128~191之间,第一段和第二段合在一起表示网络号。B类地址适用于中等规模的网络,全世界大约有16000个B类网络,每个B类网络最多可以连接65534台主机。

C类IP地址:用21位来标识网络号,8位标识主机号,前面三位是"110"。C类地址的第一段取值介于192~223之间,第一段、第二段、第三段合在一起表示网络号。最后一段标识网络上的主机号。C类地址适用于校园网等小型网络,每个C类网络最多可以有254台主机。

(3)子网掩码与IP地址结合使用,可以区分出一个网络地址的网络号和主机号。 
  例如:有一个C类地址为: 
  192.9.200.13其缺省的子网掩码为: 
  255.255.255.0则它的网络号和主机号可按如下方法得到: 
①将IP地址192.9.200.13转换为二进制11000000 00001001 11001000 00001101 
②将子网掩码255.255.255.0转换为二进制11111111 11111111 11111111 00000000 
③将两个二进制数逻辑与(AND)运算后得出的结果即为网络部分11000000 00001001 11001000 00001101 AND 11111111 11111111 11111111 00000000

11000000 00001001 11001000 00000000结果为192.9.200.0,即网络号为192.9.200.0。 
④将子网掩码取反再与IP地址逻辑与(AND)后得到的结果即为主机部分11000000 00001001 11001000 00001101 AND 00000000 00000000 00000000 11111111  00000000 00000000 00000000 00001101结果为0.0.0.13,即主机号为13。   

7、RedHat Linux查看显示的命令是(多选):_A\B\D__

A、cat

B、less

C、display

D、more

8、访问交换机的主要方法有(单选)_d__

A、console端口

B、telnet

C、浏览器

D、以上全是

9、_ping___可以查找从本地主机到远程主机的路由途径,一般用来进行网络连通性诊断

10、IP地址由_网络名__和主机地址___两部分组成

11、在RedHat Linux下,如果系统用户数比较多,就可以建立一个_/home___分区,用于保存用户主目录中的文件

一个根分区/:根分区即根目录(/)所在的分区。它只需要启动系统所必需的文件(如内核文件)和系统配置文件,大多数系统50MB到100MB的根分区可以工作得很好。 
一个/usr分区:/usr是存放Red Hat Linux系统的许多软件(如X Windows系统)的所在的分区。根据你要安装的RPM软件包的数量,这个分区一般在300MB到700MB之间,如果可能,将最大的空间用于/usr分区。 
一个/home分区:用来存放用户的个人数据的分区。它的大小取决于Red Hat Linux系统有多少用户,以及这些用户将存放多少数据。 
一个交换分区:交换分区用来负责系统的数据交换,相当于DOS/Windows下的虚拟内存,当内存不够用时,系统就会把暂时的程序数据在交换分区上存取。在Red Hat Linux下,交换分区是必需的,不管你的内存有多大,即使你有128MB的内存,也需要至少一个交换分区。 
以上就是主要的几个分区,一般情况下,普通用户,不是有特殊需求的,用这几个分区安装,就可以保证系统性能了。另外,用户的使用环境可能会要求创建一个和多个以下的分区: 
一个/usr/local分区:一般来说,/usr/local用来存放与Red Hat Linux系统不同的软件,例如,不是RPM包的软件,而是TGZ或TAR的软件包。其空间的大小取决于准备存放的这些软件的数量。 
一个/usr/src分区:在一个Red Hat Linux系统中,/usr/src通常存放两样东西:一个是内核的源代码,Linux的所有源代码都放在这里,新的内核也在这里创建。目前,内核源代码大约占50MB的空间。当你需要更多的空间来创建内核时,或者要保存几个不同版本的内核的时候,就要考虑加大该分区的空间。另一个是RPM包的源程序,如果安装了包的源程序,文件将存放在这里。这个分区的大小也取决于将在这里安装的软件包的数量。 
一个/tmp分区:/tmp分区用来存放临时文件。对于一个大型的、多用户的系统或者网络服务器,专门创建一个/tmp分区是一个好主意。对于一个专门的工作站,就不必专门创建一个/tmp分区了。 
一 个/var分区:Red Hat Linux系统将把日志写在/var/log。打印队列的文件通常写在/var/spool。除非特别配置,/var将是根文件系统的一部分,通常不占很多空间。如果系统有很多打印任务、邮件或者日志,可以考虑专门创建一个/var分区。一般来讲,只有多用户或者服务器才需要专门的/var分区。 
一 个/boot分区:这里提到的分区多数是针对大的系统,这个分区则对空间很少的小系统很有用。所有LILO启动时需要的文件都在/boot目录里,因为/boot中的这些文件(包括Linux内核)占1MB空间,如果很难为LILO要用的根分区安排100MB空间,可以幸运地只用5-10MB的分区来存放/boot,但仍然需要创建一个根分区,这时,它可以在系统的任何地方(受BIOS的限制)使用含有/boot的分区。

12、命令serveice iptables status的意思是__查看防火墙状态__

13、windows 2003下可以使用命令_ipconfig /all___查看网卡配置情况

14、Ip地址计算: 一个ip地址,10.1.1.48,掩码为27位,请写出该ip地址所在网段的范围。(x.x.x.x– x.x.x.x,包含网络地址和广播地址)


http://blog.csdn.net/hh_xlp/article/details/7030245

ip地址:10.1.1.32    广播地址:

15、重启Cisco路由器的命令和参数

16、请写出T568A的线序(从左至右)

 568A:白绿 | 绿| 白橙 | 蓝 | 白蓝 | 橙| 白棕 | 棕
568B:白橙 | 橙 | 白绿| 蓝 | 白蓝 | 绿 | 白棕| 棕

创建用户user1 并加入组group1

gpasswd –a user1 group1

 

常用的多媒体格式都有哪些?(多写加分)

http://www.360doc.com/content/07/0218/23/12210_369650.shtml

MP3、wav,MP4,avi,nAvi,dv-avi,dvd,mov,cd,wma

 

常用的流媒体格式都有哪些?

asf               Advanced Streaming format.(Microsoft).

rm               Real Video/Audio 文件 (Progressive Networks).

ra               Real Audio 文件 (Progressive Networks).

rp               Real Pix 文件 (Progressive Networks).

rt               Real Text 文件 (Progressive Networks).

swf               Shock Wave Flash (Macromedia).

mov               QuickTime(Apple公司格式)

viv               Vivo Movie 文件(Vivo Software).

 

流媒体的压缩方式都哪些?

http://info.secu.hc360.com/2011/02/230819465061.shtml

H.264

写出OSI七层模型 

  
物理层 数据链路层 网络层 传输层 会话层 表示层 应用层 

2. 写出常见的流媒体协议。 

  
  常见的应用:视频点播( VOD )、视频广播、视频监视、视频会议、远程教学、交互式游戏等。 

  实时传输协议: RTP 实时传输控制协议: RTCP 实时流协议: RTSP 资源预留协议: RSVP 

3. 写出常见的视频文件格式。  ASF 高级流格式、 NAVI MPEG DIVX REAL VIDEO RA RAM )、 QuickTime 4. 写出常见的视频文件压缩格式。 

  
JPEG M-JPEG H.263 MPEG-4  

5. 描述TCP的三次握手,并说明SYN、ACK的关系。 

  
1 )客户端发送一个带 SYN 标志的 TCP 报文到服务器。 

  ( 2 服务器端回应客户端的,这是三次握手中的第 2 个报文,这个报文同时带 ACK 标志和 SYN 标志。因此它表示对刚才客户端 SYN 报文的回应;同时又标志 SYN 给客户端,询问客户端是否准备好进行数据通讯。 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值