有意思的Python基础题

有意思的Python基础题

  1. 第一题
    1
    2
    3
    a=1
    a+=a>=1
    print(a)

请问当前的输出结果是多少

正确答案是 2
为什么那?
首先拆分 a>=1 的结果为 True
现在变成了 a+=True
在Python中 True 转变为int 类型就是1
所以变成了a+=1 结果自然是2喽
虽然题目问的简单,但是还是很考验基本功的

  1. 第二题
    print([1,2,3]>[1,3,2])
    输出结果是多少
    正确答案是False
    因为列表 ,字符串的比较是第一位与第一位比较,如果相等再进行第二位比较,如果第二位可以比较出结果,那么该结果就是返回值。跟其他位的并没有关系
  1. 第三题
1
2
3
4
5
6
7
8
9
print(1 and 2) #结果是2
print(1 and 0)#结果是0
print('a' and 'b')#结果是'b'
print('b' and 'a')#结果是'a'
print( not 'b')#结果是False
print([1] or [])#结果是[1]
print([] or [1])#结果是[1]
print(1 or 2)#结果是1
print(2 or 1#结果是2

是不是很神奇的返回值!
其实这个判断规则也很简单,只要想一下 and 和 or 的判断规则就好了。
首先 and 如果and 左右两边都是 True 类型的 但是当计算机读到and左边的参数的时候,它并不能做出判断,只有两个都知道的时候才能判断返回值。所以 print(1 and 2) #结果是2
or 同理 去思考计算机判断的过程

  1. 第四题
    1
    2
    b = {'b':1}
    print(1 in b) #输出结果为False

字典的成员运算符是针对字典的键来说的

  1. 第五题
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    a = [1,2,3]
    b = [1,3,2]
    print(a ==b ) #True
    print(a is b) #False


    c = (1,2,3)
    d=(1,3,2)
    print(c==d)#False
    print(c is d)#False

因为 is 比较的 是 对象在内存里面的地址 而且列表是无序的 元组是有序的

-------------End Of This ArticleThank You For Reading-------------