python基础面试题41-50

获取 Python 解释器版本的方法是

import sys
print(sys.version)

Python 中, 哪个语句能直接显示的释放内存资源

import gc
gc.collect()

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

'''
匿名就是没有名字
def func(x,y,z=1):
    return x+y+z

匿名
lambda x,y,z=1:x+y+z #与函数有相同的作用域,但是匿名意味着引用计数为0,使用一次就释放,除非让其有名字
func=lambda x,y,z=1:x+y+z 
func(1,2,3)
'''

*arg和**kwarg作用

*args用来接收溢出的位置参数,将接收的参数组织成元祖
**kwargs用来接收溢出的关键字参数,将接受的参数组织成字典

求结果

v = dict.fromkeys(['k1','k2'],[])
v['k1'].append(666)
print(v) #{'k1': [666], 'k2': [666]}
v['k1'] = 777
print(v)#{'k1': 777, 'k2': [666]}
#第一次字典的两个k指向的是同一块内存地址,所以k1的内存地址追加666,
k2的值也同样会是666,
而当给k1赋值时,改变了k1指向的内存地址,所以这个时候,k2不会随之发生变化

一行代码实现9*9乘法表

print("\n".join("\t".join(["%s*%s=%s" %(x,y,x*y) for y in range(1, x+1)]) 
                
# 递归
def f(i):
     if i>=1:
        f(i-1)
        print(['%dx%d=%d'%(j,i,i*j) for j in range(1,i+1)])
        
if __name__=='__main__':
    f(9)

比较 a = [1,2,3] 和 b = [(1),(2),(3) ] 以及 c = [(1,),(2,),(3,) ] 的区别?

a与b两者值相等,而c中列表的每个元素是一个个的元祖形式
a,b元素均为数字,b中括号内没加逗号,所以仍然是数字

1 <(2==2)和 1 <2==2 的结果分别是什么, 为什么

print(1 < (2 == 2))  --> False
print(1 < 2 == 2)  --> True

如何打乱一个排好序的 list 对象 alist

import random
random.shuffle(alist)

如何查找一个字符串中特定的字符?find 和 index 的差异?

'''
1)、find()方法:查找子字符串,若找到返回从0开始的下标值,若找不到返回-1
2)、index()方法:在字符串里查找子串第一次出现的位置,类似字符串的find方法,不过比find方法更好的是,如果查找不到子串,会抛出异常,而不是返回-1
3)、rfind和rindex方法用法和上面一样,只是从字符串的末尾开始查找
'''
posted @ 2019-12-11 21:14  極9527  阅读(259)  评论(0编辑  收藏  举报