这行代码中[0]的含义是什么?

2024-04-29 19:27:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习Python,我想做一个简单的yes/no问题。你知道吗

我在网上偶然发现了这个代码:

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]的目的是什么?没有它,代码为什么不能检测到以yn开头的单词?我真的很想知道!:)


Tags: orno代码inyoucuteinputif
1条回答
网友
1楼 · 发布于 2024-04-29 19:27:42

(1)参考这一行:if qr == '' or not qr[0].lower() in ['y','n']:

qr上的[0]仅指输入qr第一个字符。你知道吗

(2)这两段代码的区别在同一段代码上,第一段代码是

  • if qr == '' or not qr[0].lower() in ['y','n']:
  • if qr == '' or not qr.lower() in ['y','n']:

第二个影响qr整个字符串,并保留所有字符,如果输入的字符串长度超过一个字符,则会产生影响。你知道吗

相关问题 更多 >