Python 3 dictionary.get()函数不适用于sys.stdin

时间:2019-08-07 23:39:14

标签: python dictionary get

我当前正在编写一个词典程序,该程序允许用户输入两个单词:一个英语单词及其外文翻译。然后,用户应该能够输入外来词并检索英语词;但是,下半年我需要使用sys.stdin。

import sys

dictionary = dict()
userInput = input()
while userInput != "":
    buf = userInput.split()
    english = buf[0]
    foreign = buf[1]
    dictionary[foreign] = english
    userInput = input()

for userInput in sys.stdin:
    print(type(userInput))
    if userInput in dictionary:
        print(dictionary.get(userInput))
    else:
        print("Word not in dictionary.")

当我使用sys.stdin时,dictionary.get()函数无法正常运行。当我只使用普通的input()函数而不是sys.stdin时,该词典就能正常运行。为什么会这样?如何使sys.stdin正确地与词典搜索配合使用?

此代码似乎有效,但是再次...使用了input()而不是sys.stdin:

import sys

dictionary = dict()
userInput = input()
while userInput != "":
    buf = userInput.split()

    english = buf[0]
    foreign = buf[1]

    dictionary[foreign] = english
    userInput = input()

userInput = input()
while userInput != "":
    if userInput in dictionary:
        print(dictionary.get(userInput))
    else:
        print("Word not in dictionary")

    userInput = input()

谢谢!

1 个答案:

答案 0 :(得分:0)

问题是尾随'\ n'。 string = string.rstrip('\n')为我修复了此问题。