我有一個程序,加載名稱列表,您可以找到並添加名稱到列表中。我必須編寫一個parse_command函數,它接受一個表示一個命令及其參數的字符串,並返回一個由該命令組成的對和一個包含命令參數的元組(如果其具有正確數量的參數的有效命令)。否則,它返回對(無,無)在Python中的交互功能
輸出應該是這個樣子:
>>>parse_command('e')
('e',())
>>>parse_command('f')
(None, None)
>>>parse_command('f John Smith')
('f', ('John Smith',))
>>>parse_command('a John Smith, Washington DC, 02532223, 6 August')
('a', ('John Smith', 'Washington DC', '02532223', '6 August'))
>>>parse_command('a John Smith, Washington, 1234')
(None, None)
>>>parse_command('x')
(None, None)
到目前爲止,我有這樣的:
def parse_command(command_string):
i = command_string
if i[0] == 'e':
return ('e',())
elif i[0] == 'f':
command = i[1:]
if bool(command) == True:
return ('f', (command,))
elif bool(command) == False:
return (None, None)
elif i[0] == 'a':
command = i[1:]
section = i.split(',')
if len(section) == 4:
return ('a', tuple(i[2:].split(', ')))
else:
return (None, None)
一切正常,我也得到了輸出我應該但我想寫一個交互功能。因此,如果用戶想要查找名稱或添加名稱,他們可以輕鬆完成。要將某人添加到列表中,用戶可以輸入'a',然後輸入具有所有詳細信息的人員。要找到他們會輸入'f'的人,然後輸入該人的姓名。如果他們想退出程序,他們只需鍵入'e'。如果'a,e或f'未被使用'Invalid Command'將被返回。一個例子是這樣的:
>>>List of Names: names.csv
>>>Command: f John Smith
John Smith: Chicago, 12345, 4 July
>>>Command: f roeuh eoruhg
roeuh eoruhg Unknown Friend
Invalid Command: f
>>>Command: a John Smith, LA, 12345, 3 July
John Smith is already a friend
>>>Command: a Roger Little, Texas, 12345, 9 August
>>>Command: f Roget Little
Roger Little: Texas, 12345, 9 August
>>>Command: e
Saving changes...
Exiting...
到目前爲止,我寫了這個(load_names,add_name和DISPLAY_NAME已寫入):
def interact():
names = load_names(raw_input('List of Names: '))
ended = False
while True:
result = parse_command(raw_input('Command: '))
if result is not (None, None):
if result[0] == 'f':
return display_name(result[1], names)
pass
elif result[0] == 'a':
return add_name(result[1:], names)
pass
elif result[0] == 'e':
return 'Saving Changes...' + /n 'Exiting...'
ended = True
pass
我有點卡住,正在尋找一些幫助互動功能,有沒有人有任何想法?
在此先感謝!
也許你想看看['cmd'](http://docs.python.org/2/library/cmd.html)模塊... – sloth 2013-04-08 13:45:52
對不起,這段代碼太可怕了,和不可讀的,我已經讀了你的問題兩次,我幾乎不知道你在這裏做什麼。我建議你從編碼中抽出時間,多學習一些你想做的事情,找到類似於你在做的事情並研究它。因爲無論你在做什麼,它都不起作用。 – 2013-04-08 13:45:57
你的意思是交互功能@InbarRose?基本上,要將某人添加到列表中,請使用「a」,然後是詳細信息。找到你使用'f'的人後面跟着他們的名字。 'e'只是退出程序。 – 2013-04-08 13:47:53