我正在学习 Python,我想做一个简单的是/否问题。
我在互联网上偶然发现了这段代码:
qr = input('Do you love cute owls?')
while True:
if qr == '' or not qr[0].lower() in ['y','n']: # This line in question
print('Please answer with yes or no!')
else:
break
if qr[0].lower() == 'y': #Do something
if qr[0].lower() == 'n': #Do something else
这允许代码检测任何以 y 或 n 开头的单词,因此看起来更“智能”。
我真的很想知道这段代码和直接写有什么区别:
qr = input('Do you love cute owls?')
while True:
if qr == '' or not qr.lower() in ['y','n']: # Difference
print('Please answer with yes or no!')
else:
break
if qr.lower() == 'y': #Do something
if qr.lower() == 'n': #Do something else
为什么第二个代码不起作用?这样做的目的是什么[0]
为什么没有它,代码无法检测到以 y
开头的单词或n
?我真的很想知道! :)
最佳答案
(1) 引用这一行:if qr == '' or not qr[0].lower() in ['y','n']:
qr
上的 [0]
仅指输入 qr
的第一个字符。
(2)这两段代码的区别在同一个地方,第一个是
如果 ['y','n'] 中的 qr == '' 或不是 qr[0].lower():
如果 ['y','n'] 中的 qr == '' 或不是 qr.lower():
第二个影响qr
的整个字符串并保留所有字符,如果您输入的字符串长于一个字符,则会产生影响。
关于python - 这行代码中的[0]是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51178925/