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”呢?
如@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
,还将提示我们输入新的输入行。
方括号中的数字是一个索引,它将返回字符串中该位置的字符(如果索引超出范围,则引发Exception)。作为单个数字,它将始终仅返回单个字符。如果要返回多个,可以使用数组切片:https://docs.python.org/3/library/stdtypes.html#common-sequence-operations
根据您的用例,str对象有一个startswith方法可能更合适:line.startswith('#')
如果要匹配字符串中的任何位置,则可以使用in运算符:
如果在第#行:#做东西