我正在学习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
开头的单词?我真的很想知道! :)
答案 0 :(得分:1)
(1)引用此行:if qr == '' or not qr[0].lower() in ['y','n']:
[0]
上的qr
仅引用输入qr
的 first 字符。
(2)这两段代码之间的差异在同一段上,第一段是
if qr == '' or not qr[0].lower() in ['y','n']:
if qr == '' or not qr.lower() in ['y','n']:
第二个字符会影响qr
的整个字符串并保留所有字符,如果输入的字符串长于一个字符,则会有所不同。