【问题标题】:Python - sys.stdin.readline() - libraryPython - sys.stdin.readline() - 库
【发布时间】:2020-05-09 10:27:30
【问题描述】:
import sys

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

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

它给了我一个错误

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

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

【问题讨论】:

    标签: python sys


    【解决方案1】:

    问题是您读取 \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

    【讨论】:

    • 我刚开始学习python。为什么它读取\n?它是干什么用的?谢谢你的回复。
    • @Dakkie15 \n 是换行符,当您在​​控制台/cmd/终端中按 Enter 时,它会自动添加到字符串中
    • @Dakkie15 查看我添加到关于转义字符问题的链接
    猜你喜欢
    • 2017-11-27
    • 1970-01-01
    • 2016-08-16
    • 1970-01-01
    • 1970-01-01
    • 2020-11-18
    • 2019-12-23
    • 1970-01-01
    相关资源
    最近更新 更多