Python-sys.stdin.readline()-库

问题描述 投票:0回答:1
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'],则效果很好。

python sys
1个回答
0
投票
问题是您通过传递的输入读取了\n字符,作为错误状态:

KeyError:'truffelsalade \ 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

© www.soinside.com 2019 - 2024. All rights reserved.