파이썬으로 간단한 사전을 만드는 데 도움이 필요합니다

해리 로버츠

다음과 같이 작동하는 간단한 사전이 필요합니다. 먼저 4 개 언어로 번역 된 단어 수 (n)를 취한 다음 공백으로 구분 된 번역과 함께 각 줄 (완전히 n 줄)에 단어를 입력합니다. 사전 소스로 사용자에게 사전 소스로 제공된 단어 이상을 포함 할 수있는 구문을 입력하도록 요청해야합니다. 구문은 하나의 특정 언어로만 제공 될 수 있습니다. 예를 들어 영어의 혼합 일 수 있습니다. 프랑스어와 독일어이지만 우리의 경우에는 페르시아어 인 첫 번째 언어로 구를 번역해야합니다. 번역이 없으면 단어 자체 만 인쇄됩니다. 그래서 여기에 코드가 있습니다.

def read_dictionary():
for i in range(0, words_num):
    dict_words = str(input())
    words[dict_words.split()[0]] = dict_words.split()[1:]


def translator():
    translation = ""
    input_phrase = str(input("Enter your phrase to translate please: ")).split()
    for word in input_phrase:
        for k, v in words.items():
            if word in v:
                translation += (k + " ")
            else:
                translation += (word + " ")
    print(translation)

words_num = int(input("Enter the number of existing translated words in dictionary: "))
words = {}
read_dictionary()
translator()

여기에 샘플 입력과 원하는 출력이 있습니다.

**input:**
Enter the number of existing translated words in dictionary: 
4
man I je ich        
kheili very très sehr
alaghemand interested intéressé interessiert 
barnamenevisi programming laprogrammation Programmierung
Enter your phrase to translate please: 
I am very interested in programming
**output:**
man am kheili alaghemand in barnamenevisi

그러나 대신 다음과 같이 출력됩니다.

man I I I am am am am very kheili very very interested interested alaghemand interested in in in in programming programming programming barnamenevisi 
키에 란 모 이니 한

문제는 귀하의 translator()기능 에서 비롯됩니다 .

의 각각 word대해 에서 input_phrasek, v을 반복합니다 words.items(). 아직 까진 좋음.

그래서 우리는 무엇을 원합니까? k, v일치하는 단어 (in v)를 찾을 때까지 각 쌍을 살펴본 다음 (만약 있다면) 우리가 만들고있는 키 k추가하고 싶습니다 translation. 일치하는 단어를 찾지 못하면 원래 word값을에 추가합니다 translation.

코드의 문제는 단어를 찾았더라도 사전의 나머지 키를 계속 살펴 본다는 것입니다. 또한 사전의 각 키에 대해 번역을 추가하거나 일치 항목을 찾을 수없는 경우 word에만 기본을 추가해야하는 시작을 추가합니다 word.

개인적으로 내부 for루프를 새 함수 translate_word()또는 이와 유사한 것으로 이동 하지만 translator()큰 변경없이 함수 를 수정하는 간단한 방법 은 다음과 같습니다.

def translator():
    translation = ""
    input_phrase = str(input("Enter your phrase to translate please: ")).split()
    for word in input_phrase:
        found = False
        for k, v in words.items():
            if word in v:
                translation += (k + " ")
                found = True
                break
        if not found:
            translation += (word + " ")
    print(translation)

translator()함수에서 각 새 단어에 대해 변수 found를로 설정 한 것을 볼 수 있습니다 False. found사전에서 적절한 번역을 찾았는지 여부를 나타냅니다.

그런 다음 사전을 반복합니다. 당신이 일치하는 항목을 찾을 경우, 추가 k설정 번역에 foundTrue(당신이 번역을 발견했기 때문에), 그리고 break내부의 밖으로 for루프.

내부 for루프를 벗어나면에 found대한 번역 이 있는지 확인합니다 word. 당신이 번역을 발견하지 않은 경우, 당신은 단순히 추가 word받는 사람 translation.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

파이썬으로 파일을 읽는 데 도움이 필요합니다

분류에서Dev

F #에서 간단한 파이프 라인을 수행하는 데 도움이 필요합니다.

분류에서Dev

노드 웹킷 애플리케이션에 대한 간단한 로그인을 만드는 데 도움이 필요합니다.

분류에서Dev

C #에서 SQL Server 이상한 쿼리 제한 시간을 진단하는 데 도움이 필요합니다.

분류에서Dev

정규식을 만드는 데 도움이 필요합니다.

분류에서Dev

TensorFlow 2.0으로 ML 모델을 만드는 데 도움이 필요합니다.

분류에서Dev

간단한 섭씨 변환기를 만드는 데 도움이 필요합니다.

분류에서Dev

이미지 업로드 후 선택한 이미지간에 전환하는 데 도움이 필요합니다.

분류에서Dev

ViewController간에 데이터를 전송하는 데 도움이 필요합니다.

분류에서Dev

Flutter에서 재사용 가능한 위젯을 만드는 데 도움이 필요합니다.

분류에서Dev

"loop for"의 비동기 버전을 만드는 데 도움이 필요합니다.

분류에서Dev

asp.net의 메뉴 항목에 대한 드롭 다운을 만드는 데 도움이 필요합니다.

분류에서Dev

apply (R)를 사용하는 더 빠른 코드로 간단한 루프 코드를 업데이트하는 데 도움이 필요합니다.

분류에서Dev

파이썬 3.4.3에 대한 md5 해싱을 이해하는 데 도움이 필요합니다.

분류에서Dev

파일을 한 줄에 두 개의 키 필드로 구문 분석하는 데 도움이 필요합니다.

분류에서Dev

내 C ++ 프로그램을 만드는 데 도움이 필요합니다.

분류에서Dev

내 C ++ 프로그램을 만드는 데 도움이 필요합니다.

분류에서Dev

단일 Mysql 쿼리를 만드는 데 도움이 필요합니다.

분류에서Dev

멈춰! 이 바닥 글을 만드는 데 도움이 필요합니다.

분류에서Dev

테이블에서 원장을 만드는 데 도움이 필요합니다.

분류에서Dev

루프가있는 if 문을 만드는 데 도움이 필요합니다.

분류에서Dev

적합한 정규식을 찾는 데 도움이 필요합니다.

분류에서Dev

파이썬으로 쿼리를 보내는 데 도움이 필요합니다.

분류에서Dev

Jest (React)로 한 줄을 덮는 데 도움이 필요합니다.

분류에서Dev

간단한 콘솔 미로 게임 : 버그를 파악하는 데 도움이 필요합니다.

분류에서Dev

복잡한 JS 객체를 만드는 데 도움이 필요합니다.

분류에서Dev

간단한 유형의 여러 제품을 연결하여 색상 견본을 만들 수있는 모듈을 찾는 데 도움이 필요합니다.

분류에서Dev

설치 후 스왑을 만드는 데 도움이 필요합니다. 14.04 LTS

분류에서Dev

'중첩 된'WPF ItemsControl을 만드는 데 도움이 필요합니다.

Related 관련 기사

  1. 1

    파이썬으로 파일을 읽는 데 도움이 필요합니다

  2. 2

    F #에서 간단한 파이프 라인을 수행하는 데 도움이 필요합니다.

  3. 3

    노드 웹킷 애플리케이션에 대한 간단한 로그인을 만드는 데 도움이 필요합니다.

  4. 4

    C #에서 SQL Server 이상한 쿼리 제한 시간을 진단하는 데 도움이 필요합니다.

  5. 5

    정규식을 만드는 데 도움이 필요합니다.

  6. 6

    TensorFlow 2.0으로 ML 모델을 만드는 데 도움이 필요합니다.

  7. 7

    간단한 섭씨 변환기를 만드는 데 도움이 필요합니다.

  8. 8

    이미지 업로드 후 선택한 이미지간에 전환하는 데 도움이 필요합니다.

  9. 9

    ViewController간에 데이터를 전송하는 데 도움이 필요합니다.

  10. 10

    Flutter에서 재사용 가능한 위젯을 만드는 데 도움이 필요합니다.

  11. 11

    "loop for"의 비동기 버전을 만드는 데 도움이 필요합니다.

  12. 12

    asp.net의 메뉴 항목에 대한 드롭 다운을 만드는 데 도움이 필요합니다.

  13. 13

    apply (R)를 사용하는 더 빠른 코드로 간단한 루프 코드를 업데이트하는 데 도움이 필요합니다.

  14. 14

    파이썬 3.4.3에 대한 md5 해싱을 이해하는 데 도움이 필요합니다.

  15. 15

    파일을 한 줄에 두 개의 키 필드로 구문 분석하는 데 도움이 필요합니다.

  16. 16

    내 C ++ 프로그램을 만드는 데 도움이 필요합니다.

  17. 17

    내 C ++ 프로그램을 만드는 데 도움이 필요합니다.

  18. 18

    단일 Mysql 쿼리를 만드는 데 도움이 필요합니다.

  19. 19

    멈춰! 이 바닥 글을 만드는 데 도움이 필요합니다.

  20. 20

    테이블에서 원장을 만드는 데 도움이 필요합니다.

  21. 21

    루프가있는 if 문을 만드는 데 도움이 필요합니다.

  22. 22

    적합한 정규식을 찾는 데 도움이 필요합니다.

  23. 23

    파이썬으로 쿼리를 보내는 데 도움이 필요합니다.

  24. 24

    Jest (React)로 한 줄을 덮는 데 도움이 필요합니다.

  25. 25

    간단한 콘솔 미로 게임 : 버그를 파악하는 데 도움이 필요합니다.

  26. 26

    복잡한 JS 객체를 만드는 데 도움이 필요합니다.

  27. 27

    간단한 유형의 여러 제품을 연결하여 색상 견본을 만들 수있는 모듈을 찾는 데 도움이 필요합니다.

  28. 28

    설치 후 스왑을 만드는 데 도움이 필요합니다. 14.04 LTS

  29. 29

    '중첩 된'WPF ItemsControl을 만드는 데 도움이 필요합니다.

뜨겁다태그

보관