我正在学习Python,由于某种原因,我遇到了一个奇怪的负索引问题。我没有得到最后一个字符,而是得到了一个空字符串。并且不是获取所有字符,而是最后获取整个字符串。这是我正在使用的代码:
print('Starting loop')
for line in sys.stdin:
last = line[-1]
print 'last = ' + last
allButLast = line[:-1]
print 'AllButLast = ' + allButLast
结果:
Starting loop
123
123
last =
AllButLast = 123
last =
AllButLast = 123
最佳答案
在 for
循环的开头添加 line = line.rstrip()
以获取所需的值。当前换行符被捕获为 line[-1]
,因此您需要先删除它。在输入 123
后按下的 enter 只不过是一个换行符。
关于python - 从 sys.stdin 解析时的最后一个字符无法正确打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48500047/