import sys
super_heroes = {'Iron Man' : 'Tony Stark',
'Superman' : 'Clark Kent',
'Batman' : 'Bruce Wayne',
}
print ('Who is your favorite Superhero?')
name = sys.stdin.readline()
print ('Do you know that his real name is', super_heroes.get(name))
我在这里做了一个简单的代码,它应该读取字典中的输入并在一串字母后打印出来,但是当它运行时打印出来
" 谁是你最喜欢的超级英雄?
钢铁侠
你知道他的真名是无 "
即使输入在我的字典中。
答案 0 :(得分:2)
答案 1 :(得分:1)
sys.stdin.readline()
返回包含换行符的输入值,这不是您所期望的。您应该将sys.stdin.readline()
替换为input()
或raw_input()
,这是从用户获取输入值的更多pythonic方式,而不包括换行符。
raw_input()
最好确保返回的值是字符串类型。
为了更进一步,您可以添加一个测试if name in super_heroes:
,以便在您的收藏超级英雄名称不在您的词典中时执行特定操作(而不是打印None
)。这是一个例子:
super_heroes = {'Iron Man' : 'Tony Stark',
'Superman' : 'Clark Kent',
'Batman' : 'Bruce Wayne',
}
print ('Who is your favorite Superhero?')
name = raw_input()
if name in super_heroes:
print ('Do you know that his real name is', super_heroes[name], '?')
else:
print ('I do not know this superhero...')
答案 2 :(得分:0)
sys.std.readline()
在用户输入结尾添加换行符,您可能需要在获得超级英雄之前替换它:
name = name.replace('\n','')