python - 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']
它工作正常。
解决方案
问题是您读取了\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
推荐阅读
- scala - 为什么带有依赖项的 build.sbt Spark 3 application fat jar 正在丢弃我的依赖项?
- python - 如何使用 Selenium 和 Python 从 https://www.aliexpress.com/ 运送到下拉菜单中选择一个国家
- r - 将不同长度的数据框绑定到单独列中的 Excel 文件
- python-3.x - ValueError:传递值的长度是 1445,索引意味着 1
- firebase - 在 Chrome 和 Chrome 插件之间共享 Firebase 身份验证
- matlab - 有人可以帮助我使用将颜色空间从 RBG 更改为 ych1tch2 的 MATLAB 函数吗?
- vue.js - 如何解决使用故事书时出现“要求语句不是导入语句的一部分”的错误?
- java - 生成和验证相同令牌时的签名异常
- ceph - Ceph 使用控制
- android - Android中的多个复选框获得最终值