在python中自定义循环"input()"时如何修复索引范围之外的字符串?



我正在试验input()函数。我试图让代码循环以获得用户输入,并根据用户输入继续或中断循环。

while True:
line = input("> ")
if line[0] == "#" :
continue
if line == "done" :
break
print(line)
print('Done!')

我想尝试使代码在输入"0"之后继续循环#"是写的,但当用户输入"空白文本(字符串索引超出范围(。

我该如何解决这个问题,如果我希望在用户输入"#"相反如:

while True:
line = input("> ")
if line[1] == "#" :
continue
if line == "done" :
break
print(line)
print('Done!')
while True:
line = input("> ")
if line == "#": # removed '[0]'
continue
if line == "done":
break
print(line)        
print('Done!')

我刚刚删除了"[0]"列表索引,这是不需要的,因为line只是一个保存用户输入值的变量

已解决!

通过在索引之前首先检查是否满足索引范围,设法避免此问题。

while True:
line = input("> ")
if len(line) == 0 : # check if blank
print('please input something')
continue
if len(line) >= 2 : # check if index is in range
if line[1] == '#' :
continue
if line == "done" :
break
print(line)
print('Done!')

如果"#"的位置在第[1]行或任何一行[]中,如"#"#HelloWorld"或"#某些东西;。感谢你为我写一些可以使用的方法所做的努力,它对我帮助很大。

最新更新