2013-05-24 5 views
0

파이썬에서 if/else 문을 가지고 있는데, else 문으로 넘어갈 때 아무 것도하고 싶지 않습니다.Python if 문이 작동하지 않습니다.

나는 단어의 목록을 읽고, palindromes (예 : 'abba')를 찾아서 인쇄하고 있습니다. 현재 은 전체 단어 목록을 인쇄하고 is_palindrome 기능이 올바르게 작동하고 있음을 알고 있습니다.

def first(word): 
    return word[0] 

def last(word): 
    return word[-1] 

def middle(word): 
    return word[1:-1] 


def is_palindrome(word): 
    #print(word) 
    if len(word) >1: 
     if first(word) == last(word): 
      #print(word) 
      #print(middle(word)) 
      return is_palindrome(middle(word)) 
     else: 
      return False 
    else: 
     return True 


try: 
    words = open("/usr/share/dict/words","r") 

    for line in words: 
     line.strip() 
     #print line 
     if is_palindrome(line) == True: 
      print(line) 
    else 
    words.close() 
except: 
    print("File open FAILED") 

나는 당신이 내게 줄 수있는 통찰력을 주셔서 감사합니다. 감사.

+0

3 번과 4 번 하단의 들여 쓰기가 잘못되어이 기능이 작동하지 않습니다. –

+0

이 코드 조각에 구문 오류가 있습니다. 또한 주석 처리 된 인쇄 문이 잔뜩 있습니다. 주석 처리에 실패한 다른 인쇄 문이있을 수 있습니까? – qwwqwwq

+0

들여 쓰기가 원래 사본에 맞았습니다. 아마도 이것을 잘못 입력했을 것입니다. 나는 어떤 것도 놓치지 않았다. 나는 단지 line = line.strip()을 넣어야했다. –

답변

9

'line.strip()'자체로는 줄이 변경되지 않습니다. 이것이 효과가 있어야합니다.

for line in words: 
    line = line.strip() 
    if is_palindrome(line) == True: 
     print(line) 

words.close() 
+0

알았어요! 감사! –

+0

이 방법으로 문제가 해결되면 녹색 체크 표시를 클릭하여이 대답을 수락해야합니다. – Taymon

관련 문제