Python-交互式电话簿

Python-交互式电话簿,python,split,interactive,Python,Split,Interactive,我需要帮助,用raw\u input将姓名和电话号码添加到一行字典中。它应该是这样的:addjohn123(用数字123添加名称John)。这是我的密码: def phonebook(): pb={} while True: val,q,w=raw_input().split(" ") if val=='add': if q in pb: print print

我需要帮助,用
raw\u input
将姓名和电话号码添加到一行字典中。它应该是这样的:
addjohn123
(用数字123添加名称John)。这是我的密码:

def phonebook():
    pb={}
    while True:
        val,q,w=raw_input().split(" ")
        if val=='add':
            if q in pb:
                print
                print "This name already exists"
                print
            else:
                pb[q]=w #lägger till namn + nummer i dictionary
        if val=='lookup':
            if q in pb:
                print
                print pb[q]
                print
            else:
                print "Name is not in phonebook"
                print 

我得到解包错误。有什么建议吗?还有其他方法吗?

下一行假设您键入了3个单词,每个单词之间用空格分隔:

val, q, w = raw_input().split(" ")
如果少于或多于3个单词(在使用lookup命令时是这样的,不是吗?),则会出现解包错误

您可以在唯一变量中获取输入,然后测试其第一个元素以避免错误:

in_ = raw_input().split(" ")
if in_[0] == 'add':
    # process add action
if in_[0] == 'lookup':
    # process lookup action

额外提示:您不需要将空格字符指定给
split
方法,因为它是默认值:

raw_input().split()  # will work as well

下一行假设您正好键入3个单词,每个单词之间用空格分隔:

val, q, w = raw_input().split(" ")
如果少于或多于3个单词(在使用lookup命令时是这样的,不是吗?),则会出现解包错误

您可以在唯一变量中获取输入,然后测试其第一个元素以避免错误:

in_ = raw_input().split(" ")
if in_[0] == 'add':
    # process add action
if in_[0] == 'lookup':
    # process lookup action

额外提示:您不需要将空格字符指定给
split
方法,因为它是默认值:

raw_input().split()  # will work as well

我认为当你用“lookup john”查找某人时会出现解包错误。代码在拆分(“”)中查找第三个值,但没有找到

我不确定这是否有帮助:

def phonebook():
pb={}
while True:
    vals = raw_input().split(" ")
    if vals[0] == 'add':
        q = vals[1]
        w = vals[2]
        if q in pb:
            print "This name already exists"
        else:
            pb[q]=w #lägger till namn + nummer i dictionary
    elif vals[0]=='lookup':
        q = vals[1]
        if q in pb:
            print
            print str(q) + "'s number is: " + str(pb[q])
            print
        else:
            print "Name is not in phonebook"
            print
给我寄来:

>add j 12
>add j 12
This name already exists
>lookup j

j's number is: 12

>lookup j 12

j's number is: 12

>lookup k
Name is not in phonebook

我认为当你用“lookup john”查找某人时会出现解包错误。代码在拆分(“”)中查找第三个值,但没有找到

我不确定这是否有帮助:

def phonebook():
pb={}
while True:
    vals = raw_input().split(" ")
    if vals[0] == 'add':
        q = vals[1]
        w = vals[2]
        if q in pb:
            print "This name already exists"
        else:
            pb[q]=w #lägger till namn + nummer i dictionary
    elif vals[0]=='lookup':
        q = vals[1]
        if q in pb:
            print
            print str(q) + "'s number is: " + str(pb[q])
            print
        else:
            print "Name is not in phonebook"
            print
给我寄来:

>add j 12
>add j 12
This name already exists
>lookup j

j's number is: 12

>lookup j 12

j's number is: 12

>lookup k
Name is not in phonebook

谢谢,非常有帮助!谢谢,非常有帮助!