2016-10-22 2 views
-4

내가 변수가 그 중 하나에 동일한 경우는 내가 그 통해 보이는 코드를 다음파이썬 3.x를 불완전하게

stopCommands = {"quit": "I will quit now", "stop": "Goodbye!"} 

같은 외모와 사전을 가지고, 그것을 값

userInput = input("Enter your command: ").casefold() 
if userInput in stopCommands 
    print(stopCommands[userInput]) 

이, 작동하지만 사용자가 철자를 잘못 경우 또는 그 shut off 대신 shut down 입력하면 인쇄?

어떻게 이러한 오류에 대한 검색 계정을 만들 수 있으며 적어도 시간 중 일부는 올바른 것을 선택할 수 있습니까?

+3

당신은 퍼지 매칭을해야 할 것입니다. 그것은 너무나 넓은 질문입니다. – jonrsharpe

+1

1. 이것은 사전이 아니라 목록입니다. 2. 사용자가 단어의 철자를 잘못하면 비교가 실패합니다. – UnholySheep

+0

'dict'과 같은'stopCommands'를 기대하고'dict'와 같은 값을 검색하고 있지만 실제로는'list' 객체가 있습니다. 'int' 값인'index'를 사용하여 값을 가져와야합니다. –

답변

1

철자가 틀린 경우 퍼지 라이브러리를 확인하십시오.

당신이 생각할 수있는 모든 가능한 명령을 나열이 아닌, 일반적으로 더 유연하게하려면, 당신은 shut downshutdown 모두를 나열 할 필요가 없습니다

  1. 가 먼저 사용자의 입력에서 모든 공백을 제거합니다. 실제로 문자 이외의 모든 문자를 제거하기 때문에 마지막에 마침표를 추가하는 것이 좋습니다.
  2. 입력에 off, quit 또는 exit과 같은 동일 단어가 아닌 단어가 포함되어 있는지 확인하십시오.
관련 문제