2016-04-16 9 views
0

私は現在、私のプログラムが複数の行を受け入れるようにしようとしていますが、現時点で最後の行を選び、それをブタのラテン語に変換します。私はそれがコードのこの部分だと信じていますが、私は何を変えるべきか正確にはわかりません。Python 2.7 - x行のうち1行だけを使用するプログラム

def pig_word(string): 
    for line in text: 
     line = line.split() 
    lines = [] 
    for line in string.split('\n'): 
     new_string = "" 
     for word in line.split(): 
      first_letter = word[0] 
      if first_letter in vowels: 
       new_string += word + "way" + " " 
      else: 
       new_string += word[1:] + first_letter + "ay" + " " 
       global new_string 
      lines.append(new_string) 

完全なコードは次のとおりです。

vowels = ("A", "a", "E", "e", "I", "i", "O", "o", "U", "u") 



# Functions 

def pig_word(string): 
    for line in text: 
     line = line.split() 
    lines = [] 
    for line in string.split('\n'): 
     new_string = "" 
     for word in line.split(): 
      first_letter = word[0] 
      if first_letter in vowels: 
       new_string += word + "way" + " " 
      else: 
       new_string += word[1:] + first_letter + "ay" + " " 
       global new_string 
      lines.append(new_string) 



def line_counter(s): 
    line_count = 0 
    for _ in s.split("\n"): 
     line_count += 1 
    return line_count 

def word_counter(line): 
    word_count = 0 
    list_of_words = line.split() 
    word_count += len(list_of_words) 
    return word_count 

# File path conversion 
text = raw_input("Enter the path of a text file: ") 
file_path = open(text, "r") 
out_file = open("pig_output.txt", "w") 


s = file_path.read() 
pig = pig_word(s) 
out_file.write(str(new_string)+ "\n") 
out_file.write("\n") 


linecount = line_counter(s) 
wordcount = word_counter(s) 


file_path.close() 
out_file.close() 

# Results 

print "\n\n\n\nTranslation finished and written to pig_output.txt" 
print "A total of {} lines were translated successfully.".format(linecount) 
print "A total of {} words were translated successfully.".format(wordcount) 
print "\n\n\n\n" 

入力ファイルが含まれています

Pig latin 
I dont know what is wrong with this 
Random testing 
Randomly typing 

出力ファイルを次のとおりです。

andomlyRay ypingtay 

答えて

0

あなたのコードでは、いくつかの矛盾があると奇妙な構造;そして、あなたが出力を保存するスクリプトの下、で

def pig_word(string): 
    lines = [] 
    for line in string.split('\n'): 
     new_string = "" 
     for word in line.split(): 
      first_letter = word[0] 
      if first_letter in vowels: 
       new_string += word + "way" + " " 
      else: 
       new_string += word[1:] + first_letter + "ay" + " " 
      lines.append(new_string) 
    return lines 

out_file.write('\n'.join(pig)) 

あなたに議論する他のものがあるでしょうちょうど最も明らかな問題を見て、あなたのようpig_wordを変更これは最大の問題を解決するはずです。

0

グローバル変数new_stringを使用して結果を出力します。この変数には、forループの最後に最後の行が1行だけ含まれています。未使用の変数linesを返し、このリストを使用してすべての行を出力します。

関連する問題