python-面试题
1、is和==区别
点击查看代码
a = [1,3,5,]
b = [1,3,5,]
print(id(a))
print(id(b))
print(a is b) #比较的是内存地址是否相等
print(a == b) #比较的是数值是否相等
"""
输出结果
2105250423552
2105250423168
False
True
"""
2、小数据池和代码块
小数据池:数字范围:-5~256 不在这范围内的都是自己定义
小数据池的优点:节省内存开销,提高效率
终端执行的是小数据池
pycharm执行的是代码块
点击查看代码
终端:
Python 3.9.5 (tags/v3.9.5:0a7dcbd, May 3 2021, 17:27:52) [MSC v.1928 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> a = 257
>>> b = 257
>>> a is b
False
>>> a == b
True
>>>
>>> a = -6
>>> b = -6
>>> a is b
False
>>> a == b
True
pycharm:
a = 257
b = 257
print(id(a))
print(id(b))
print(a is b)
print(a == b)
"""
输出结果
2313858480528
2313858480528
True
True
"""
a = -6
b = -6
print(id(a))
print(id(b))
print(a is b)
print(a == b)
"""
输出结果
1739808471344
1739808471344
True
True
"""
3、验证码验证方法
点击查看代码
#全部小写验证码
yzm = "03zt"
input_yzm = input("请输入验证码(03ZT):")
user = input("请输入用户名:")
passwd = input("请输入密码:")
if yzm == input_yzm.lower():
if user == "zt" and passwd == "0725":
print("用户登录成功")
else:
print("用户登陆失败!")
else:
print("用户验证码输入错误")
4、元组面试题
点击查看代码
tup1 = (10)
tup2 = (10,)
tup3 = ()
print(type(tup1),type(tup2),type(tup3))
"""
输出结果:
<class 'int'> <class 'tuple'> <class 'tuple'>
"""
5、字典面试题
5.1、通过zip()函数(拉链)进行创建字典
点击查看代码
lst = [1,2,4,5,6]
lst1 = [1,1,1,1,1,1,1]
print(dict(zip(lst,lst1)))
"""
输出结果:
{1: 1, 2: 1, 4: 1, 5: 1, 6: 1}
"""
#根据字典的特性,这个需注意
lst = [1,2,4,5,6]
lst1 = [1,1,1,1,1,1,1]
print(dict(zip(lst1,lst))) #需注意:字典键是唯一的,值可以重复,所以结果就是下面的情况
"""
输出结果:
{1: 6}
"""
5.2、创建字典的第二种方式
点击查看代码
dic = dict(a=1,b=2,c=3)
print(dic)
"""
输出结果:
{'a': 1, 'b': 2, 'c': 3}
"""
5.3、map()映射函数
点击查看代码
print(list(map(str,[1,2,3,4,5]))) #将列表映射成为字符串
"""
输出结果:
['1', '2', '3', '4', '5']
"""
5.4、一个数组中将出现一次的元素加起来求和
点击查看代码
#11.有一个数组[34,1,2,5,6,6,5,4,3,3],将只有个数为一个的元素加起来求和
lst = [34,1,2,5,6,6,5,4,3,3]
#方法一:
def foo(x):
# print("嘿咻嘿咻")
return lst.count(x) == 1
#模拟一个filter()函数
def filter(func,iter):
sum = 0
for i in iter:
ret = func(i)
if ret == True:
sum = sum + i
return sum
print(filter(foo,lst))
#方法二:
def foo(x):
# print("嘿咻嘿咻")
return lst.count(x) == 1
print(sum(filter(foo,lst)))
#方法三:
print(sum(filter(lambda x : lst.count(x) == 1,lst)))