首页 > 解决方案 > Python - sys.stdin.readline() - 库

问题描述

import sys

lijst_salades = {'Eiersalade' : 5.99,
                 'Paprikasalade' : 6.05,
                 'truffelsalade': 3.99
                 }

input = (sys.stdin.readline())
print(lijst_salades[input])

它给了我一个错误

回溯(最后一次调用):文件“C:/some/random/dir/right/here/progr.py”,第 9 行,在 print(lijst_salades[input]) KeyError: 'truffelsalade\n'

有人可以解释做错了什么吗?如果我使用print(lijst_salades['Eiersalade']它工作正常。

标签: pythonsys

解决方案


问题是您读取了\n输入传递的字符,作为错误状态:

KeyError: '松露沙拉\n'

您应该将代码修复为:

import sys

lijst_salades = {'Eiersalade' : 5.99,
                 'Paprikasalade' : 6.05,
                 'truffelsalade': 3.99
                 }

input = (sys.stdin.readline()).rstrip()
print(lijst_salades[input])

此外,建议在输入中添加测试,因为如果密钥不存在,它也会引发类型错误KeyError

编辑

您可以在以下链接中阅读转义字符:

https://linuxconfig.org/list-of-python-escape-sequence-characters-with-examples

https://docs.python.org/2.0/ref/strings.html


推荐阅读