根据字符串的ascii值终止raw_input

时间:2017-02-13 18:25:16

标签: python-2.7

我是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'

1 个答案:

答案 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'