if line [0] ==“#”是什么意思。这是字符串字符的位置吗?

问题描述 投票:-3回答:2
while True:
    line = input("> ")
    if line[0] == "#": # what does line[0] mean
        print("cont") #if [1] or other number equal to other words
        continue    
    if line == "done":
        break
    print("Hello")
print("bye")

如果[0]是一个不同的数字并且==让我们说“ abcde”呢?

python
2个回答
1
投票

如@Christian Sloper和@John Jefferson Bautista在评论中指出的,line[0] == '#'检查用户输入字符串的第一个字符是否等于'#'

首先,请注意,Python中的input()函数将用户的输入作为字符串返回。从documentation

该函数(...)从输入中读取一行,将其转换为字符串(带尾随换行符),然后将其返回。

因此,line将以字符串格式存储来自用户的输入。

然后,line[0]仅表示该字符串的第一个字符。这是Python中的字符串索引和切片之后的结果。

>>> s = 'foobar'
>>> s[0]
'f'
>>> s[1]
'o'
>>> s[3]
'b'

因此,line[0] == '#'所要做的就是检查用户输入的第一个字符是否为'#'。如果满足条件,我们将在提示上看到'cont'。由于continue,还将提示我们输入新的输入行。


1
投票

方括号中的数字是一个索引,它将返回字符串中该位置的字符(如果索引超出范围,则引发Exception)。作为单个数字,它将始终仅返回单个字符。如果要返回多个,可以使用数组切片:https://docs.python.org/3/library/stdtypes.html#common-sequence-operations

根据您的用例,str对象有一个startswith方法可能更合适:line.startswith('#')

如果要匹配字符串中的任何位置,则可以使用in运算符:

如果在第#行:#做东西

© www.soinside.com 2019 - 2024. All rights reserved.