2014-04-03 2 views
0

성공적으로 단어 번역기 기능을 만들었고 다른 사람들이 제 수업에서 한 것을 둘러 보았습니다. 나는 문장 기능에서 문장 인수를 분리해야한다는 것을 알고 있습니다. 그러나 나는 그것으로 무엇을 해야할지 모르겠다! 나는 http://www.mit.edu/~johnp/6.189/solutions/piglatin.py을 참조로 사용했지만 (이 내용은 파이썬 2이지만,이 지점에 도달하는 데 도움이된다.) 이해하지만, 나는 list_of_words 후에 완전히 없어졌다. 네, 다른 돼지 라틴어에 관한 질문을 보았습니다. 그러나 나는 여기에서 어떤 방향으로 나아가 야 하는지를 충분히 이해할 수 있다고 생각하지 않습니다.Python 3 Pig Latin Sentence

죄송합니다 그것을, 당신이 질문에 대답하고 싶지 않아 물어 큰, 난 그냥이 단지 불쾌한 재 게시하는 경우

consonants = "bcdfghjklmnpqrstvwxyz" 

def pig_latinify_word(word): 
    fist_letter = str(word[0]) 
    if first_letter in consonants: 
     return str((word[1:] + word[0] + "ay".lower())) #I think the str() is 
    else: return str((word + "way".lower())) #arbitrary, but not sure. Being safe! 

def pig_latinify_sentence(sentence): 
    list_of_words = sentence.split() 
    new_sentence = "" #the bit where I am stuck. Understand up to this point. 
    for word in list_of_words: 
     new_sentence = new_sentence + pig_latinify_word(word) 
     new_sentence = new_sentence + "" 
return new_sentence 

piglatin = pig_latinify_sentence("This is a about to be a piglatin sentence") 
print(piglatin) 

미안 무엇을해야하는지의 방향으로 지적되고 싶지이다, 그러나 나는 몇 가지 해답을 보았고 여기에서 무엇을해야할지 모른다. 또한 다른 교사가 자음을 분리 할 필요가 없다고 말하면서 교사 중 한 명을 추가하고 싶습니다. 그게 뭔가 관련이 있나? 나는 모른다! 어쨌든 고마워.

편집 : 내가 여기에서 변경해야하는 것을 보여주는 대답을 찾은 것 같지만 이해가되지 않습니다. 또한 내 교과서에서 무언가를 찾아보기 위해 심판하는 것이 좋습니다. 나는 단지 읽고 이해하기를 원한다. 나는 물어 보는 것이 많을 수도 있다는 것을 알고있다.

편집 : 오 마이 갓, 오타라고 깨달았습니다. first_letter가 아닌 fist_letter.

감사합니다. 나는 너의 대답을 다시 읽을거야. 뭐

답변

0

당신이 말할 때 : 이해하기 쉬운, 그래서 당신은 문자열로 newSentence의 유형을 설정하는

newSentence = "" 

. 그런 다음 for 루프에서 돼지 라틴어 단어의 값을 새 문장에 연결하고 공백을 추가합니다. 나는 그것을 사용하는 것이 좋은 습관이라는 것을 언급해야한다 :

newSentence += pig_latinify_word(word) 
newSentence += " " 

같은 코드이므로, 모든 것을 단축 할 뿐이다. /=, *=-=도 마찬가지입니다.

0

당신이 " ".joinbuiltin map() 기능을 사용하여 다시 작성할 수 있습니다 연결 한 코드 :

def pig_latinify_sentence(sentence): 
    return " ".join(map(pig_latinify_word, sentence.split())) 

는, 문장 내에서 계정에 구두점을하려면 당신이 use re module을 할 수 있었다.

관련 문제