我是python的新手。
我的问题 - 如果没有传递,需要终止raw_input
我基本上要求用户将键值对的数量添加到字典中。然后在字典中添加键值对。稍后查询字典,如果密钥存在则应该产生值,否则打印Not found
。
我搜索了Stack Overflow并找到了计时器方面的解决方案,但我试图使用ord函数来获取字符串的ascii值,并检查它是否为ascii值为0的null。我的代码似乎没有终止,请关于代码中必要变更的建议。
请找到我在程序中使用的代码:
def convert_to_ascii(text):
return "".join(str(ord(char)) for char in text)
n=int(raw_input().rstrip())
phonebook = dict(raw_input().split() for i in range(n))
print phonebook
list1=[]
while True:
choice = raw_input()
temp=convert_to_ascii(choice)
print temp
if temp != '0':
list1.append(choice)
else:
break
for word in list1:
if word in phonebook :
print '{0}={1}'.format(word,phonebook[word])
else:
print 'Not found'
答案 0 :(得分:0)
您应该使用空字符串''
代替'0'
作为您的支票。这段代码对我有用。我还在raw_inputs中添加了一些打印件,以帮助我查看代码,但唯一重要的更改是'0'
到''
:
def convert_to_ascii(text):
return "".join(str(ord(char)) for char in text)
n=int(raw_input('How many entries in your phonebook?\n').rstrip())
phonebook = dict(raw_input('Please enter "[name] [number]" for entry '+str(i+1)+':\n').split() for i in range(n))
print phonebook
list1=[]
while True:
choice = raw_input('Who do you want to choose?\n')
temp=convert_to_ascii(choice)
if temp != '': #<-- changed to empty string from '0'
list1.append(choice)
else:
break
for word in list1:
if word in phonebook :
print '{0}={1}'.format(word,phonebook[word])
else:
print word,'was not found'