【问题标题】:What's the meaning of [0] in this line of code? [duplicate]这行代码中的[0]是什么意思? [复制]
【发布时间】:2018-07-04 17:59:00
【问题描述】:

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

【问题讨论】:

  • 你指的是哪一行?
  • some_string[0] 为您提供字符串的第一个字符。
  • 你想把'yes'、'yeah'等当作'y'吗?如果是这样,您应该只查看输入的第一个字母(即qr[0])。

标签: python string input slice


【解决方案1】:

(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整个字符串并保留所有字符,如果输入的字符串长于一个字符,则会有所不同。

【讨论】:

    猜你喜欢
    • 2011-08-23
    • 1970-01-01
    • 2012-03-14
    • 2014-01-10
    • 2018-07-07
    • 2014-01-05
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多