나는 목록에서 이름을 찾아 목록에 추가 할 수있는 이름 목록을로드하는 프로그램이 있습니다. 필자는 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'가 사용되지 않으면 '잘못된 명령'이 반환됩니다. 예는 다음과 같이 될 것이다 :이 (load_names, add_name 및 DISPLAY_NAME가 이미 작성된) 작성했습니다 지금까지
>>>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...
:
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
죄송합니다.이 코드는 끔찍합니다. 읽을 수 없으며, 나는 당신의 질문을 2 번 읽었으며, 당신이 여기서 무엇을하려고하는지 거의 알지 못합니다. 나는 코딩에서 시간을 내고,하고 싶은 일에 대해 좀 더 배우고, 당신이하고있는 것과 비슷한 것을 찾아서 공부하는 것이 좋습니다. 당신이하는 일이 무엇이든간에 그것은 작동하지 않습니다. –
상호 작용 함수 인 @InbarRose를 의미합니까? 기본적으로 목록에 누군가를 추가하려면 'a'다음에 세부 정보를 사용하십시오. 누군가를 찾으려면 이름 뒤에 'f'를 사용하십시오. 'e'는 단순히 프로그램을 종료합니다. –