+3 投票
分类:编码思路 | 用户: 6 3 2 (300 分)
Name = ['Peter','Meg','Stewie']

name = ['peter','meg','stewie']

if 'lois' in Name or name:

    print('Lois Griffin')

else:

    print('Peter Griffin')

以上代码运行结果是
A.Lois Griffin
B.Peter Griffin
C.无法运行,报错
D.False

4 个回答

+1 投票
用户: 6 5 2 (2.0k 分)

可以参考我之前回答的这个问题 3月 5 分类:学习问题 | 用户: 犀卡

电脑的判断是(‘Lois' in Name)和(name),不是你理解的’Lois‘ in(Name or name),因为name这个条件实际上你没有判断,所以系统判别一直是True,只会打印第一个结果

+2 投票
用户: 9 5 2 (1.1k 分)
in运算符优先级比or高,相当于是('l' in Name) or name,其中name非空为True,就变成了False or True,结果为True
+2 投票
用户: 9 6 3 (1.3k 分)
计算机读取时是按('lois' in Name) or name读取的,只要('lois' in Name)和name有一个是True,就会执行print('Lois Griffin'),而由于name会被判别为True,所以是A
+1 投票
用户: 7 4 (1.2k 分)

因为or的选择是把(‘Lois' in Name)和(name)分开,不要理解错了

欢迎来到 在线问答系统 ,有什么不懂的可以尽管在这里提问,你将会收到社区其他成员的回答。
...