python3解释器执行long(10)_python面试315题(1--->30题)

17、用一行代码实现数值交换:a = 1 b = 2

a,b = b,a

18、Python3和Python2中 int 和 long的区别?

int(符号整数):通常被称为是整数或整数,没有小数点的正或负整数

long(长整数):无限大小的整数,这样写整数和一个大写或小写的L。

19、xrange和range的区别?

1.range和xrange都是在循环中使用,输出结果一样。

2.range返回的是一个list对象,而xrange返回的是一个生成器对象(xrange object)。

3.xrange则不会直接生成一个list,而是每次调用返回其中的一个值,内存空间使用极少,因而性能非常好。

注意:Python 3.x已经去掉xrange,全部用range代替。

20、文件操作时:xreadlines和readlines的区别?

二者使用时相同,但返回类型不同,xreadlines返回的是一个生成器,readlines返回的是list

21、列举布尔值为False的常见值?

0 , [ ] , " , ( ) , { }

22、字符串、列表、元组、字典每个常用的5个方法?

字符串:

words = ‘today is a wonderfulday‘

print(words.strip(‘today‘))#如果strip方法指定一个值的话,那么会去掉这两个值

print(words.count(‘a‘))#统计字符串出现的次数

print(words.index(‘is‘))#找下标

print(words.index(‘z‘))#找下标如果元素不找不到的话,会报错

print(words.find(‘z‘))#找下标,如果元素找不到的话,返回-1

列表:

sample_list = [‘a‘,1,(‘a‘,‘b‘)] #创建列表

sample_list = [‘a‘,‘b‘,0,1,3] # Python 列表操作

value_start = sample_list[0] #得到列表中的某一个值

end_value = sample_list[-1] #得到列表中的某一个值

del sample_list[0] #删除列表的第一个值

sample_list[0:0] = [‘sample value‘] #在列表中插入一个值

元祖:

#元组也是一个list,他和list的区别是元组的元素无法修改

tuple1 = (2,3,4,5,6,4,7)

print(type(tuple1))

print(tuple1[:7])

print(tuple1[:5:-1])字典dict = {‘ob1‘:‘computer‘, ‘ob2‘:‘mouse‘, ‘ob3‘:‘printer‘}

#每一个元素是pair,包含key、value两部分。key是Integer或string类型,value 是任意类型。键是唯一的,字典只认最后一个赋的键值。

D.get(key, 0) #同dict[key],多了个没有则返回缺省值,0。[]没有则抛异常

D.has_key(key) #有该键返回TRUE,否则FALSE

D.keys() #返回字典键的列表

D.values()

D.items()

23、lambda表达式格式以及应用场景?

lambda表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。

lambda所表示的匿名函数的内容应该是很简单的,如果复杂的话,干脆就重新定义一个函数了,使用lambda就有点过于执拗了。

lambda就是用来定义一个匿名函数的,如果还要给他绑定一个名字的话,就会显得有点画蛇添足,通常是直接使用lambda函数。如下所示:

# 需求:将列表中的元素按照绝对值大小进行升序排列

list1 = [3,5,-4,-1,0,-2,-6]

print(sorted(list1, key=lambda x: abs(x))) #[0, -1, -2, 3, -4, 5, -6]

24、pass的作用?

1、空语句

2、保证格式完整

3、占位语句

25、*arg和**kwarg作用

所以从以上的示例可以看到*arg和**kwarg的作用为:

1、函数调用里的*arg和**kwarg:

(1)*arg:元组或列表“出现”

**kwarg:字典“出没”

(2)分割参数

2、函数定义时传的*arg /**kwarg:

(1)接收参数

26、is和==的区别

==是python标准操作符中的比较操作符,用来比较判断两个对象的value(值)是否相等

is也被叫做同一性运算符,这个运算符比较判断的是对象间的唯一身份标识,也就是id是否相同。

27、简述Python的深浅拷贝以及应用场景?

字面理解:浅拷贝指仅仅拷贝数据集合的第一层数据,深拷贝指拷贝数据集合的所有层。所以对于只有一层的数据集合来说深浅拷贝的意义是一样的,比如字符串,数字,还有仅仅一层的字典、列表、元祖等.

应用场景:比如在CMDB系统中,我们定义了一个报警模版call给所有的服务器使用,此时有一批特殊应用的服务器需要不通的报警参数,我们既不想单独新建模版来一个一个添加报警参数,又不想修改默认模版而影响其他机器的报警阈值。此时我们就需要用深拷贝来完成。

28、Python垃圾回收机制?

Python的GC模块主要运用了“引用计数”(reference counting)来跟踪和回收垃圾。在引用计数的基础上,还可以通过“标记-清除”(mark and sweep)解决容器对象可能产生的循环引用的问题。通过“分代回收”(generation collection)以空间换取时间来进一步提高垃圾回收的效率。

29、Python的可变类型和不可变类型?

可变:列表、字典

对于可变类型,无论创建多少个可变类型,只要值相同,都不指向同个内存地址(除非进行复制操作,那么他们将会指向同一个地址)。

不可变:数字、字符串、元祖

对不可变类型的变量重新赋值,实际上是重新创建一个不可变类型的对象,并将原来的变量重新指向新创建的对象(如果没有其他变量引用原有对象的话(即引用计数为0),原有对象就会被回收)。

30、求结果:

v = dict.fromkeys([ 'k1', 'k2'],[])

v[‘k1’]. append( 666)

print(v)

v[‘k1’] = 777

print(v)结果为:

<<<{'k1': [666], 'k2': [666]}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值