python - 从 sys.stdin 解析时的最后一个字符无法正确打印

标签 python

我正在学习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/

相关文章:

python - Pandas :将数据框中的日期更改为相同的日期格式

python - mss sct.grab 不让我选择要使用的显示器

python - 如何检查矩阵是否包含零列?

python - 根据子数组中的第一个元素删除 numpy 子数组

python - 从单元测试中的结果访问运行时

python - @list_route 和@detail_route 嵌套路由不会出现在 Browseable API 中

python - 如何在特定字符处拆分字符串并构建不同的字符串组合

python - 类型错误 : object of type 'Cursor' has no len()

python - 在Python中选择字典中的数据

python - 在 Python 中编码 128 位整数?