Python简单的面试题

120 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第27天,点击查看活动详情

1、怎么理解is,in ,==

is:判断两个对象的标识符是否相等,比较的是两个对象的id值是否相等,也就是比较对象是否为同一个实例对象,是否指向同一个内存地址。

a = [1,2,3,4,5]
b = [1,2,3,4,5]
c=a
print(a is b)
print(a is c)

此时运行结果为False,True,虽然创建了两个离别OA,但是实例位于不同的内存地址,所以他们的id值一样,所以返回的是false,但是c赋值为a,他们两个的id地址一样,所以返回True 需要注意的是如果是一个可变类型的定义了两个值相等,但是id可能不相等,如果是不可变类型的数据,定义的两个值相等,id可能也相等

in:用于成员检测,是判断成员是否属于某个序列,in后即可以跟字符串,也可以跟列表,实际上各种集合类型都可以

a = [1,2]
b = [1,2,3,4,5,[1,2]]
print(a in b)

此时运行结果为True,表示a在b里边,如果b中不包含列表【1,2】,此时在运行就是False的。

dict1 = {"name":"admin","age":18}
print("name" in dict1)
print("admin" in dict1)

此时运行结果为True,False。

对于字典类型,in操作判断是否是字典的键,但不能直接判断值,如果要判断一个值是否在字典中,可以用字典的values()方法

==:判断值是否相等,比较的是两个对象的内容是否相等,默认会调用对象的__eq__()方法。

a = [1,2,3,4,5]
b = [1,2,3,4,5]
print(a == b)

此时运行结果为True,对于数值型、字符串、列表、字典、集合,默认只要元素值相等,== 比较结果是 True

2、九九乘法表

for i  in range(1,10):
    for j  in range(1,i+1):
            print(f"{j}*{i}={i*j}",end='\t')
    print("")

此时运行结果为一个乘法口诀,最后一个print打印的是空,为了是换行 end=“\t"表示不换行。